In der Shell nach Dateien suchen (macOS)

Was nützen einem Dateien, wenn man Sie in den Wirren der Verzeichnisstruktur nicht mehr wiederfindet? Gar nichts. Und deswegen befassen wir uns in diesem Blogbeitrag mit dem Suchen von Dateien unter Verwendung der Shell. Dafür stehen mehrere Befehle zur Verfügung, konzentrieren möchte ich mich aber auf find.

Öffne das Terminal und erstelle im Dokumenten-Verzeichnis einen neuen Unterordner mit dem Namen „shell“ und wechsele anschließend in diesen Ordner:

$ cd ~/Documents/shell

Dort erstellst Du dann zwei Verzeichnisse und eine Textdatei:

$ mkdir Ordner1 Ordner2
$ touch Beispiel.txt

Die Verwendung von

$ ls

sollte jetzt zu folgender Ausgabe führen:

Beispiel.txt Ordner1 Ordner2

Anschließend geht es in das eigene Benutzerverzeichnis:

$ cd ~

Von hier aus starten wir unsere Suche:

$ find . -name "Ordner*"

Damit suchen wir nach Dateien oder Ordnern, deren Name die Zeichenkette „Ordner“ enthält. Der „.“ steht für das aktuelle Verzeichnis, in dem wir uns gerade befinden. Von hier aus durchsucht find dann die dazugehörigen Unterordner. Als Ergebnis sollten die zuvor erstellten Ordner angezeigt werden:

./Documents/shell/Ordner1
./Documents/shell/Ordner2

Anstelle eines Punktes hätte ich auch schreiben können:

$ find /Users/bodo -name "Ordner*"

Die Verwendung eines Punktes für die Kennzeichnung des aktuellen Verzeichnisses als Ausgangspunkt ist da deutlich komfortabler.

Für die folgende Suche wechseln wir in den Dokumente-Ordner:

$ cd Documents

und geben hier

$ find . -name "*.txt"

ein. Als Ergebnis sollte unter anderem die vorhin angelegte Datei „Beispiel.txt“ erscheinen:

./shell/Beispiel.txt

Denn obige Anweisung besagt, dass — ausgehend vom aktuellen Verzeichnis — nach allen Dateien mit der Endung „txt“ gesucht werden soll.

Der Befehl find ist äußerst mächtig. Du solltest deswegen auf jeden Fall einen Blick in die Manpage zu find werfen:

$ man find

Über die Shell kann übrigens auch eine Spotlight-Suche durchgeführt werden. Der Befehl dazu lautet: mdfind.