2.6 KiB
locate – Dateien schnell anhand des Namens finden
locate sucht Dateipfade in einer vorberechneten Datenbank. Dadurch ist die Suche meist sehr schnell – anders als find muss locate dafür nicht bei jeder Suche das Dateisystem durchlaufen.
Auf aktuellen Linux-Systemen wird häufig plocate verwendet; andere Distributionen können eine andere locate-Implementierung bereitstellen. Verfügbare Optionen und der Aktualisierungsdienst können sich deshalb leicht unterscheiden.
Grundlegende Verwendung
locate ssh_config # Pfade finden, deren Name zum Muster passt
locate -i readme.md # Groß-/Kleinschreibung ignorieren
locate -b bashrc # nur Dateinamen statt des gesamten Pfads durchsuchen
Anführungszeichen sind sinnvoll, wenn ein Suchmuster Leerzeichen oder Shell-Sonderzeichen enthält:
locate 'project notes'
locate '*.service'
Viele Implementierungen behandeln ein Muster ohne Platzhalter wie eine Teilzeichenfolge. Details zum Musterformat stehen in man locate.
Suchdatenbank aktualisieren
locate findet nur Einträge, die in seiner Datenbank stehen. Diese wird üblicherweise automatisch regelmäßig aktualisiert. Nach dem Erstellen oder Verschieben einer Datei kann die Datenbank daher zunächst veraltet sein.
Manuell aktualisieren (Befehl und Berechtigungen hängen von der Installation ab):
sudo updatedb
Danach die Suche erneut ausführen. Auf manchen Systemen heißt das Aktualisierungswerkzeug anders oder wird über einen systemd-Timer verwaltet.
Wann locate sinnvoll ist
- Wenn schnell ein wahrscheinlich vorhandener Pfad gesucht werden soll.
- Wenn der genaue Ordner unbekannt ist, der Dateiname aber ungefähr bekannt ist.
- Für eine erste Orientierung, bevor eine gezieltere Suche gestartet wird.
Grenzen und Stolperfallen
locatedurchsucht Dateinamen und Pfade, nicht den Inhalt der Dateien.- Neue, verschobene oder gelöschte Dateien sind eventuell noch nicht in der Datenbank berücksichtigt.
- Es eignet sich nicht gut für Bedingungen wie Dateigröße, Änderungsdatum oder Dateityp innerhalb eines bestimmten Verzeichnisses.
- Ein gefundener Pfad garantiert nicht, dass du die Datei lesen oder öffnen darfst.
- Die Zugänglichkeit der Datenbank und ausgeschlossene Verzeichnisse hängen von der jeweiligen Konfiguration ab.
Für eine aktuelle Suche mit Filtern ist find besser geeignet, zum Beispiel:
find ~/Downloads -type f -iname '*bericht*.pdf'
Siehe auch
- IT-Know-How/Linux/BASH Basics/find – aktuelle Suche mit Filtern
- IT-Know-How/Linux/Linux