Bash in OSX non è sensibile alla distinzione tra maiuscole e minuscole?

72

I comandi di bash su case senza OSX sono insensibili? Scrivo "which TR" e mostra / usr / bin / TR, anche se non esiste un tale binario. Stessa cosa per gli altri binari, quando sono in maiuscolo. Oppure Terminal.app potrebbe forse fare questa traduzione? Come posso disattivarlo?

    
posta verboze 17.08.2011 - 17:41
fonte

4 risposte

87

Questa è in realtà una funzione del filesystem del tuo disco, non bash o Terminal.app.

HFS + (il filesystem Mac) è solitamente configurato per case insensitive ma case preserving . Ciò significa che il file system considererà foo e FoO uguali, ma quando crei un nuovo file ricorderà quali lettere erano in maiuscolo e quali no.

Quando si formatta un disco con HFS +, è possibile scegliere se il file system debba essere sensibile alle maiuscole o minuscole. Se hai scelto di formattare con UFS (Unix FileSystem) è sempre case sensitive, AFAIK.

Per verificare se un disco fa distinzione tra maiuscole e minuscole, esegui:

 diskutil info <device>

Ad esempio:

 diskutil info disk0s2

Cerca la riga Name: . Se legge qualcosa come Mac OS Extended (Case-sensitive, Journaled) significa che è case-sensitive. Se legge solo Mac OS Extended (senza Case-sensitive ), è solo conservazione del caso ma non maiuscole / minuscole .

    
risposta data 17.08.2011 - 18:40
fonte
5

Dai un'occhiata al tuo filesystem, dato che ci sono variazioni tra maiuscole e minuscole e maiuscolo / minuscolo su HFS. L'impostazione predefinita è case insensitive, nel qual caso non è tanto un caso di BASH, ma il filesystem sottostante. Puoi testare questo problema formattando una chiavetta USB di riserva con l'opzione case sensitive e copiando i file su ato per ripetere il test, ecc.

    
risposta data 17.08.2011 - 17:48
fonte
1

Bash è sicuramente case sensitive.

Ho appena inserito "whoami" nel terminale e il pulsante di blocco maiuscole era acceso.

Ho ricevuto una risposta completamente diversa da "WHOAMI".

Vedo che c'è un comando WHOAMI con "which" ma non riesco a trovarlo con "ls".

    
risposta data 21.04.2017 - 09:02
fonte
1

Sono riuscito a risolvere il problema con una riga seguendo il link

echo "set completion-ignore-case On" >> ~/.inputrc
    
risposta data 31.12.2013 - 20:58
fonte

Leggi altre domande sui tag