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
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" ~*.*