Bash bietet Ihnen mehrere Befehle zur Suche nach Dateien und dem Inhalt von Dateien:
Dieses Dienstprogramm steht nur zur Verfügung, wenn das Paket findutils-locate installiert ist. Mit diesem Befehl finden Sie den Speicherort der angegebenen Datei. Zur Angabe von Dateinamen können Sie auch Wildcards verwenden. Das Programm ist sehr schnell, da es die Dateien in einer speziell für diesen Zweck erstellten Datenbank sucht, also nicht das gesamte Dateisystem durchsuchen muss. Allerdings hat diese Vorgehensweise auch einen erheblichen Nachteil: locate findet keine Dateien, die nach der letzten Aktualisierung dieser Datenbank erstellt wurden. Die Datenbank wird mit updatedb aktualisiert. Dazu benötigen Sie allerdings Root-Berechtigungen.
Mit diesem Befehl können Sie ein bestimmtes Verzeichnis nach einer Datei durchsuchen. Das erste Argument gibt das Verzeichnis an, in dem die Suche beginnt. Nach der Option -name muss der gesuchte Dateiname eingegeben werden (eventuell auch mit Wildcards). Im Gegensatz zu locate, das eine Datenbank durchsucht, sucht find nur im angegebenen Verzeichnis.
Mit dem Befehl grep können Sie die angegebenen Dateien nach einer bestimmten Suchzeichenfolge durchsuchen. Wird das gesuchte Wort gefunden, dann wird die Zeile, in der sich die Suchzeichenfolge befindet, mit dem Namen der betreffenden Datei angezeigt. Zur Angabe von Dateinamen können Sie auch Wildcardss verwenden.
KDE- und GNOME-Desktop speichern benutzerspezifische Anwendungsdaten in verborgenen Verzeichnissen, z. B. .kde und .gnome.
Sie finden diese Verzeichnisse auf Ihrem Computer, indem Sie das Folgende eingeben:
locate .kde
wenn KDE-Desktop installiert ist, oder:
locate .gnome
wenn GNOME-Desktop installiert ist.
Sie werden sehen, dass locate alle Dateinamen in der Datenbank anzeigt, die an beliebiger Stelle die Zeichenfolge .kde bzw. .gnome enthalten. Wie Sie dieses Verhalten ändern können, erfahren Sie auf der Manualpage für locate.
Zum Durchsuchen Ihres Home-Verzeichnisses nach allen Instanzen von Dateien mit der Dateinamenserweiterung .txt geben Sie das Folgende ein:
find ~ -name *.txt
Zum Durchsuchen eines Verzeichnisses (in diesem Fall das Home-Verzeichnis) nach allen Instanzen von Dateien, die beispielsweise das Wort music enthalten, geben Sie das Folgende ein:
grep music ~*.*
Beachten Sie, dass "grep" Groß- und Kleinschreibung unterscheidet, sofern Sie es nicht mit der Option -i verwenden. Mit dem obigen Befehl finden Sie keine Dateien, die das Wort Music enthalten.
Wenn Sie eine Suchzeichenfolge verwenden, die aus mehreren Wörtern besteht, umgeben Sie die Zeichenfolge mit doppelten Anführungszeichen, z. B.:
grep "music is great" ~*.*