ZSH Insensitive Mode

ZSH Insensitive Mode

ZSH und der ls - Befehl zum Auflisten von Dateien ohne Berücksichtigung der Groß- und Kleinschreibung

Dateien mit LS auflisten, die einem bestimmem Schema entsprechen machen wir ja eigentlich relativ einfach mit dem folgenden Kommando:

ls -l *quotes*

In meinem Fall ist das Ergebnis lediglich eine Datei:

thomas@Toms-MBP Documents % ls -l *quotes*                            
-rw-r--r--@ 1 thomas  staff  2306 Jul 24 11:49 quotes.txt

Mac OS und die ZSH sind aber “case sensitive”, das heißt hier wird die Groß- bzw. Kleinschreibung berücksichtigt. Dieses Verhalten können wir mit dem folgenden Kommando abschalten:

unsetopt CAse_glob

Das Ergebnis danach sieht dann wie folgt aus:

thomas@Toms-MBP Documents % unsetopt CAse_glob
thomas@Toms-MBP Documents % ls -l *quotes*    
-rw-r--r--@ 1 thomas  staff   899 Jun 28 11:41 denglish_Quotes.txt
-rw-r--r--@ 1 thomas  staff  2306 Jul 24 11:49 quotes.txt

Da jetzt die ZSH nicht mehr “case sensitive” ist, werden alle Dateien angezeigt die dem Suchmuster entsprechen. Natürlich berücksichtigt auch das Kommando find diese Einstellung:

thomas@Toms-MBP Documents % find /Users/thomas/Documents/ -iname "*quotes*" -print
/Users/thomas/Documents/denglish_Quotes.txt
/Users/thomas/Documents/quotes.txt

Dieses Verhalten können wir mit dem folgenden Kommando wieder in den Ursprungszustand versetzen:

setopt CAse_glob

Übrigens, wenn wir ls mit grep verwenden, funktioniert das ohne vorher ein unsetopt ausführen zu müssen.

thomas@Toms-MBP Documents % ls -l | grep -i "quote"
-rw-r--r--@  1 thomas  staff   899 Jun 28 11:41 denglish_Quotes.txt
-rw-r--r--@  1 thomas  staff  2306 Jul 24 11:49 quotes.txt

Mehr Informationen dazu gibt es auch in der ZSH Dokumentation.