# `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 ```bash 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: ```bash 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): ```bash 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 - `locate` durchsucht **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: ```bash find ~/Downloads -type f -iname '*bericht*.pdf' ``` ## Siehe auch - [[IT-Know-How/Linux/BASH Basics/find|find]] – aktuelle Suche mit Filtern - [[IT-Know-How/Linux/Linux|Linux]]