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 Platzhalter 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. Hierdurch ergibt sich auch ein wesentlicher Nachteil: locate kann keine Dateien finden, die nach der letzten Aktualisierung der 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 Platzhaltern). 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 Platzhalter 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' -print
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 bei grep die Groß- und Kleinschreibung unterschieden wird, sofern die Verwendung nicht mit der Option -i
erfolgt. 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" ~/*