locate-Befehl
finden wird in Bezug auf den Ressourcenverbrauch des Systems als gering angesehen, da das Dateisystem nicht in Echtzeit durchsucht wird. Suchen Sie stattdessen in einer Datenbank, die zu Leerlaufzeiten (normalerweise nachts) aktualisiert wird. Dieser Ansatz bietet eine sehr schnelle Suche, aber die Ergebnisse spiegeln möglicherweise nicht die kürzlich hinzugefügten oder gelöschten Dateien wider.
Die grundlegende Syntax des Lokalisierungsbefehls lautet:
# locate [options] search_string
Das folgende Beispiel zeigt, wie man locate verwendet, um eine bestimmte Datei anhand des Dateinamens zu finden:
$ locate file1 /var/tmp/file1.txt
Es gibt mehrere Implementierungen des Befehls locate. Alle bieten ähnliche Funktionen, haben aber unterschiedliche Funktionen implementiert.
- finden :Dies ist die ursprüngliche Position, die derzeit von der GNU Foundation verwaltet wird. Der Befehl locate ist im mlocate-Paket enthalten, das von der GNU Foundation erhältlich ist.
- lokalisieren :Sicheres Auffinden (slocate) ist insofern sicher, als es die Berechtigungen von Dateien in seiner Datenbank speichert und daher keine Dateien für Benutzer findet, die nicht das Recht haben, sie zu sehen.
Aufbau der Locate-Datenbank
Auf einem neu installierten System, das die ganze Nacht nicht gelaufen ist, müssen Sie sich als root anmelden und den folgenden Befehl ausführen, um die Datenbank zu erstellen:
# /etc/cron.daily/mlocate.cron
Pakete finden
Um den Befehl locate verwenden zu können, muss das richtige RPM-Paket installiert sein. Verwenden Sie den folgenden Befehl, um herauszufinden, welches Paket den Befehl locate bereitstellt:
# yum whatprovides locate Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.lga7.us.voxel.net * epel: mirror.cogentco.com * extras: mirror.genesisadaptive.com * nux-dextop: li.nux.ro * updates: mirrors.gigenet.com epel/x86_64/filelists_db | 9.9 MB 00:00:00 mlocate-0.26-6.el7.x86_64 : An utility for finding files by name Repo : base Matched from: Filename : /usr/bin/locate
Wie oben gezeigt mlocate Paket enthält den Befehl locate.
Was ist der Unterschied zwischen dem Befehl locate und find unter Linux