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
.