update
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# `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]]
|
||||
Reference in New Issue
Block a user