![为什么大写命令在我的 Bash shell 中有效?](https://linux22.com/image/116341/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%A4%A7%E5%86%99%E5%91%BD%E4%BB%A4%E5%9C%A8%E6%88%91%E7%9A%84%20Bash%20shell%20%E4%B8%AD%E6%9C%89%E6%95%88%EF%BC%9F.png)
我在 OSX 上使用 Bash 3.2.57。
今天偶然发现我可以输入cp
或者CP
复制,ls
或者LS
列出文件,或者rm
删除RM
。CD
更改目录不起作用。 (大概是因为cd
是内置的)。
man CP
等man RM
不起作用
which CP
向我指出,但我的清单中/bin/CP
没有。CP
/bin
但file /bin/CP
显示/bin/CP: Mach-O 64-bit executable x86_64
。
一切都非常混乱!
答案1
不区分大小写和保留大小写的行为是 Apple 做出的一个旧选择,在我看来,shell 只是回显您输入的内容。(尝试LS /BIN/CP
。)最终,值得庆幸的是,随着APFS,Apple 文件系统,该系统将于今年秋季随即将推出的 macOS High Sierra 一起提供。它还将在 watchOS、tvOS、iOS 上运行。虽然HFS+可以格式化为区分大小写,但并不是所有软件都能区分差异。