Czy polecenia bash na OSX nie uwzględniają wielkości liter? Wpisuję „what TR” i pokazuje / usr / bin / TR, chociaż nie ma tam takiego pliku binarnego. To samo dotyczy innych plików binarnych, jeśli są wielkie. A może Terminal.app może to tłumaczenie? Jak to wyłączyć?
79
locale
i ukończenie ignorowania przypadku / nocaseglobOdpowiedzi:
W rzeczywistości jest to funkcja systemu plików na dysku, a nie bash ani Terminal.app.
HFS + (system plików Mac) jest zwykle skonfigurowany tak, aby nie rozróżniał wielkich i małych liter, ale zachowuje wielkość liter . Oznacza to, że system plików rozważy
foo
iFoO
będzie taki sam, ale kiedy utworzysz nowy plik, zapamięta, które litery były pisane wielkimi literami, a które nie.Podczas formatowania dysku za pomocą HFS + możesz wybrać, czy system plików ma rozróżniać małe i wielkie litery. Jeśli zdecydujesz się sformatować za pomocą UFS (Unix FileSystem), zawsze rozróżniana jest wielkość liter, AFAIK.
Aby sprawdzić, czy na dysku rozróżniana jest wielkość liter, uruchom:
Na przykład:
Poszukaj
Name:
linii. Jeśli czyta coś podobnegoMac OS Extended (Case-sensitive, Journaled)
, oznacza to, że rozróżnia małe i wielkie litery. Jeśli tylko czytaMac OS Extended
(bezCase-sensitive
), to zachowuje tylko wielkość liter, ale nie rozróżnia wielkości liter .źródło
i
odpowiadająca wielkiejİ
kropce DOTTED , podczas gdy bez kropki wielka literaI
odpowiada małej kropce DOTLESSı
, ale ŻADNE rozwiązanie będzie złe. A co z Niemcamiß
, często pisanymi wielkimi literami 2S
s? A akcenty, które często są pomijane przy pisaniu dużymi literami? I ... Wrażliwość na wielkość liter usuwa wszystkie te bóle głowy.Spójrz na swój system plików, ponieważ w systemie plików HFS są rozróżniane duże i małe litery. Domyślnie wielkość liter nie rozróżnia. W takim przypadku nie jest to tak naprawdę przypadek BASH, ale bazowy system plików. Możesz to przetestować, formatując zapasową pamięć USB z opcją rozróżniania wielkości liter i kopiując pliki w celu powtórzenia testu itp.
źródło
Udało mi się to naprawić za pomocą jednej linii, postępując zgodnie z http://blog.nickburwell.com/blog/2008/11/mac-os-x-terminal-case-insensitive-auto
źródło
Bash zdecydowanie rozróżnia wielkość liter.
Właśnie wpisałem „whoami” w terminalu, a przycisk Caps Lock był włączony.
Otrzymałem zupełnie inną odpowiedź niż `WHOAMI '.
Widzę, że istnieje komenda WHOAMI z „która”, ale nie mogę jej znaleźć z „ls”.
źródło
whoami
sam program. W rzeczywistości jest to ten sam programid
, ale sprawdza, jaką nazwę uruchomiono, i używa innego wyjścia (równoważnegoid -un
), jeśli działa pod nazwą „whoami”. W tej kontroli rozróżniana jest wielkość liter. Porównaj wyjścieid
,WHOAMI
,WhOaMi
,WhoAmI
, itd. Ponadto, porównaj wyjściels -li /usr/bin/whoami
VSls -li /usr/bin/WHOAMI
, i pamiętać, że numer i-węzła (pierwszą rzeczą wymienione na wyjściu) jest taka sama - są dwa różne sposoby określania dokładnie ten sam plik .