OSX上的bash命令是否不區分大小寫?我鍵入“哪個TR”,它顯示/ usr / bin / TR,儘管那裡沒有這樣的二進製文件。對於其他二進製文件,大寫時也是一樣。還是Terminal.app可能正在執行此翻譯?如何關閉此功能?
OSX上的bash命令是否不區分大小寫?我鍵入“哪個TR”,它顯示/ usr / bin / TR,儘管那裡沒有這樣的二進製文件。對於其他二進製文件,大寫時也是一樣。還是Terminal.app可能正在執行此翻譯?如何關閉此功能?
這實際上是磁盤文件系統的功能,而不是bash或Terminal.app。
HFS +(Mac文件系統)通常配置為不區分大小寫,但保留大小寫。這意味著文件系統會認為 foo
和 FoO
相同,但是當您創建新文件時,它將記住哪些字母大寫,哪些字母大寫。 / p>
使用HFS +格式化磁盤時,可以選擇文件系統是否區分大小寫。如果選擇使用UFS(Unix FileSystem)格式化,則始終區分大小寫,即AFAIK。
要檢查磁盤是否區分大小寫,請運行:
diskutil info <device>
例如:
diskutil info disk0s2
查找名稱:
線。如果讀取的內容類似於 Mac OS Extended(區分大小寫,日記)
,則表示它區分大小寫。如果它只是讀取 Mac OS Extended
(不區分大小寫),那麼它只是區分大小寫,而不是區分大小寫 。
我通過遵循 http://blog.nickburwell.com/blog/2008/11/mac-os-x-terminal-case-insensitive-auto
回顯“將完成設置-忽略情況設置為開” >>〜/ .inputrc
看看您的文件系統,因為HFS上存在區分大小寫和不區分大小寫的變體。默認值是不區分大小寫的,在這種情況下,它不是BASH的情況,而是基礎文件系統。您可以通過以下方式進行測試:使用區分大小寫的選項格式化備用USB記憶棒,然後復製文件以重複測試等。
Bash絕對區分大小寫。
我剛剛在終端中輸入了 whoami
,大寫鎖定按鈕處於打開狀態。
我收到的回應與 WHOAMI
完全不同。
我可以看到有一個 WHOAMI
命令和哪個
,但是用 ls
找不到。
這是您的文件系統內容。
我正在使用APFS,它也不區分大小寫,但保留大小寫。這篇帖子提供了有關H(ierarchical)FS和APFS的很好的解釋。
#include <sys / stat.h>
#include <iostream>
int main(int argc,char ** argv){
struct stat sb;
int ret = stat(argv [0],&sb);
std :: cout << ret << std :: endl;
}
使用 stat
此程序的輸出:
➜./a.out ./test_dir/cat.png
0
➜./a.out ./test_dir/caT.png
0
一個簡單的bash測試
➜cp cat.png caT.png
cp:caT.png和cat.png相同(未復制)。
對於bash來說,如果您使用默認的HFS或APFS,我認為在Mac OS上它也不區分大小寫,因為命令可執行文件也是文件,並且在鍵入命令名稱時,該名稱將用於通過搜索路徑進行搜索以查找要執行的文件。
➜echo x X
X
➜eChO x X
X