OS X上的bash命令是否区分大小写?我输入“哪个TR”,它显示/ usr / bin / TR,尽管那里没有这样的二进制文件。对于其他二进制文件,大写时也是一样。还是Terminal.app可能正在执行此翻译?如何关闭此功能?
locale
和完成忽略情况 / nocaseglob
OS X上的bash命令是否区分大小写?我输入“哪个TR”,它显示/ usr / bin / TR,尽管那里没有这样的二进制文件。对于其他二进制文件,大写时也是一样。还是Terminal.app可能正在执行此翻译?如何关闭此功能?
locale
和完成忽略情况 / nocaseglob
Answers:
这实际上是磁盘文件系统的功能,而不是bash或Terminal.app。
HFS +(Mac文件系统)通常配置为不区分大小写,但保留大小写。这意味着文件系统将考虑foo
并FoO
保持相同,但是当您创建新文件时,它将记住哪些字母大写,哪些字母不大写。
使用HFS +格式化磁盘时,可以选择文件系统是否区分大小写。如果选择使用UFS(Unix FileSystem)格式化,则始终区分大小写,即AFAIK。
要检查磁盘是否区分大小写,请运行:
diskutil info <device>
例如:
diskutil info disk0s2
寻找Name:
线。如果它读取类似的内容,Mac OS Extended (Case-sensitive, Journaled)
则表示它区分大小写。如果它只是读取Mac OS Extended
(不读取Case-sensitive
),则仅保留大小写,而不区分大小写。
i
对应于DOTTED大写字母İ
,而无点的大写字母I
对应于DOTLESS小写字母ı
,但是任何解决方案都不好。那德国人ß
经常用2 S
s 大写字母呢?并在大写时经常忽略的口音?而且...区分大小写消除了所有这些头痛问题。
我设法通过遵循http://blog.nickburwell.com/blog/2008/11/mac-os-x-terminal-case-insensitive-auto的一行来解决此问题
echo "set completion-ignore-case On" >> ~/.inputrc
Bash绝对区分大小写。
我只是在终端上输入了“ whoami”,然后按下了大写锁定按钮。
我收到的回应与“ WHOAMI”完全不同。
我可以看到存在带有“哪个”的WHOAMI命令,但是找不到带有“ ls”的命令。
whoami
程序本身。它实际上是与相同的程序id
,但是它检查运行时使用id -un
的名称,如果以“ whoami”的名称运行,则使用不同的输出(等于)。该检查区分大小写。比较器的输出id
,WHOAMI
,WhOaMi
,WhoAmI
,等。此外,比较器的输出ls -li /usr/bin/whoami
VS ls -li /usr/bin/WHOAMI
,并注意inode编号(输出中列出的第一件事)是相同的-他们是指定完全相同的文件的两个不同的方法。