不区分大小写的文件系统如何同时显示大写和小写文件名?

111--

前几天,当我在开发项目时就遇到了这个问题,该项目依赖于文件名方面的自以为是的框架。框架(此处不相关)想要查看大写优先的文件名。这让我开始思考。

上不区分大小写的文件系统,说extFAT或HFS +(具体不区分大小写)如何在文件系统提供访问相同的文件两者的文件名的上部和下部壳体的版本。

例如:

$ cd ~/Documents
$ pwd
/home/derp/Documents

$ cd ../documents
$ pwd
/home/derp/documents

$ cd ../docuMents
$ pwd
/home/derp/docuMents

$ cd ../DOCUMENTS
$ pwd
/home/derp/DOCUMENTS

$ cd ../documentS
$ pwd
/home/derp/documentS

所有这些命令都将解析到同一目录。这种行为(特别pwdbash在这种情况下只是一个函数的输出)只是向我展示了它想看到的内容吗?

另一个例子:

$ ls ~/Documents
Derp.txt    another.txt    whatThe.WORLD

此处的文件系统报告由用户或程序创建的原始文件名的情况。

在文件系统堆栈中的什么时候保留了可读的文件名(例如,大写和小写),以便可以通过正确的大写和小写ASCII字符的任意组合来访问它?这只是某个地方的正则表达式把戏,还是还有其他事情发生?

编辑:它看起来像我很好奇中发现的行为的情况下保留后一些调查研究不区分大小写的文件系统......

征服了

不区分大小写的文件系统仅表示只要文件系统必须询问“ A是否与B引用相同的文件/目录?” 它比较文件/目录的名称,忽略大写/小写的差异(确切地说,大写/小写的差异计数取决于文件系统,一旦超出ASCII,它就变得不明显了)。区分大小写的文件系统不会忽略这些差异。

保留大小写的文件系统存储给定的文件名。不保留大小写的文件系统则不会;通常会在存储它们之前将所有字母都转换为大写(理论上,它可以使用小写或RaNsOm NoTe大小写,或其他任何形式,但AFAIK所有现实世界中的字母都使用大写)。

您可以将这两个属性任意组合在一起。我不确定是否可以找到不区分大小写的区分大小写的文件系统,但是您当然可以创建一个。但是,所有其他组合在真实系统中都存在或存在。

因此,保留大小写,不区分大小写的文件系统(当今最常见的不区分大小写的文件系统类型)将以您创建或最后重命名的大小写形式存储和返回文件名,但是在比较两个文件名时(检查是否一个文件名)存在,打开一个,删除一个,依此类推),它将忽略大小写差异。

当您在Unix机器上使用不区分大小写的文件系统时,各种实用程序都会做一些奇怪的事情,因为Unix传统上使用区分大小写的文件系统,因此它们并不期望Document1并且document1是同一文件。

在这种pwd情况下,您看到的是默认情况下它仅输出您实际用于获取目录的路径。因此,如果您通过到达那里cd DirName,它将DirName在输出中使用如果您通过到达那里DiRnAmE,您将DiRnAmE在输出中看到Bash通过在$PWD环境变量中跟踪您如何到达当前目录来做到这一点主要是用于符号链接(如果cd进入符号链接pwd,即使它实际上不是当前目录路径的一部分,您也会在符号中看到符号链接)。但这也使您在不区分大小写的文件系统上观察到一些奇怪的行为。我怀疑这pwd -P会使用存储在磁盘上的大小写为您提供目录名称,但尚未经过测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不区分大小写的文件系统如何访问文件?

来自分类Dev

bash中不区分大小写的文件名搜索和检索

来自分类Dev

查找文件(不区分大小写),并在变量中获取真实文件名(区分大小写)

来自分类Dev

perl脚本可搜索Java源代码以区分大小写(不区分大小写)文件名

来自分类Dev

OsX El Capitan忽略区分大小写的文件名,而不区分文件/目录

来自分类Dev

如何确保区分大小写的资源是我在不区分大小写的文件系统上寻找的资源?

来自分类Dev

Ubuntu中的文件名是否区分大小写?

来自分类Dev

Ubuntu中的文件名是否区分大小写?

来自分类Dev

移动具有相同的不区分大小写文件名的文件

来自分类Dev

Windows的Linux子系统中区分大小写的文件名

来自分类Dev

Mac-从区分大小写的文件系统转换为不区分大小写的文件系统

来自分类Dev

如何根据返回的不区分大小写的增量从文件系统中删除文件?

来自分类Dev

perl脚本可在Java源代码中搜索区分大小写(不区分大小写)的文件名

来自分类Dev

如何在Perl中检测不区分大小写的文件系统?

来自分类Dev

在不区分大小写的文件系统上自动执行区分大小写的重命名的git commit

来自分类Dev

在不区分大小写的情况下,如何使“ ls”首先显示点文件?

来自分类Dev

如何在CLion中使用蛇形大小写作为文件名和骆驼形大小写作为文件名?

来自分类Dev

Git在不区分大小写的文件系统上添加文件夹的问题

来自分类Dev

不区分大小写的文件名模式匹配返回无

来自分类Dev

如何在Emacs 24 Shell模式下为文件名自动完成禁用区分大小写?

来自分类Dev

在Linux上,node.js要求文件名区分大小写吗?

来自分类Dev

拇指驱动器无法区分Lubuntu上文件名的大小写

来自分类Dev

PHP-不区分大小写的文件搜索

来自分类Dev

vimgrep不区分大小写的文件模式

来自分类Dev

不区分大小写的文件检查是否为RewriteCond

来自分类Dev

不区分大小写地加载Excel文件表

来自分类Dev

文件的递归差异不区分大小写

来自分类Dev

从linux访问Windows共享文件(不区分大小写)

来自分类Dev

文件中的字符重复 - 不区分大小写

Related 相关文章

  1. 1

    不区分大小写的文件系统如何访问文件?

  2. 2

    bash中不区分大小写的文件名搜索和检索

  3. 3

    查找文件(不区分大小写),并在变量中获取真实文件名(区分大小写)

  4. 4

    perl脚本可搜索Java源代码以区分大小写(不区分大小写)文件名

  5. 5

    OsX El Capitan忽略区分大小写的文件名,而不区分文件/目录

  6. 6

    如何确保区分大小写的资源是我在不区分大小写的文件系统上寻找的资源?

  7. 7

    Ubuntu中的文件名是否区分大小写?

  8. 8

    Ubuntu中的文件名是否区分大小写?

  9. 9

    移动具有相同的不区分大小写文件名的文件

  10. 10

    Windows的Linux子系统中区分大小写的文件名

  11. 11

    Mac-从区分大小写的文件系统转换为不区分大小写的文件系统

  12. 12

    如何根据返回的不区分大小写的增量从文件系统中删除文件?

  13. 13

    perl脚本可在Java源代码中搜索区分大小写(不区分大小写)的文件名

  14. 14

    如何在Perl中检测不区分大小写的文件系统?

  15. 15

    在不区分大小写的文件系统上自动执行区分大小写的重命名的git commit

  16. 16

    在不区分大小写的情况下,如何使“ ls”首先显示点文件?

  17. 17

    如何在CLion中使用蛇形大小写作为文件名和骆驼形大小写作为文件名?

  18. 18

    Git在不区分大小写的文件系统上添加文件夹的问题

  19. 19

    不区分大小写的文件名模式匹配返回无

  20. 20

    如何在Emacs 24 Shell模式下为文件名自动完成禁用区分大小写?

  21. 21

    在Linux上,node.js要求文件名区分大小写吗?

  22. 22

    拇指驱动器无法区分Lubuntu上文件名的大小写

  23. 23

    PHP-不区分大小写的文件搜索

  24. 24

    vimgrep不区分大小写的文件模式

  25. 25

    不区分大小写的文件检查是否为RewriteCond

  26. 26

    不区分大小写地加载Excel文件表

  27. 27

    文件的递归差异不区分大小写

  28. 28

    从linux访问Windows共享文件(不区分大小写)

  29. 29

    文件中的字符重复 - 不区分大小写

热门标签

归档