前几天,当我在开发项目时就想到了这个问题,该项目依赖于文件名方面的自以为是的框架。框架(此处不相关)想要查看大写优先的文件名。这让我开始思考。
上不区分大小写的文件系统,说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
所有这些命令将解析到同一目录。这种行为(特别pwd
是bash
在这种情况下只是一个函数的输出)只是向我展示了它想看到的内容吗?
另一个例子:
$ ls ~/Documents
Derp.txt another.txt whatThe.WORLD
此处的文件系统报告由用户或程序创建的原始文件名的情况。
在文件系统堆栈中的什么时候保留了可读的文件名(例如,大写和小写),以便可以通过正确的大写和小写ASCII字符的任意组合来访问它?这只是某个地方的正则表达式把戏,还是还有其他事情发生?
编辑:经过更多研究后,似乎在保留大小写不区分大小写的文件系统中发现了我好奇的行为...