Einführung
Der locate
command ist ein Unix-Dienstprogramm zum schnellen Auffinden von Dateien und Verzeichnissen. Der Befehl ist eine bequemere und effizientere Alternative zum find Befehl, der aggressiver ist und länger braucht, um die Suche abzuschließen.
Gegenteil von find
, das locate
Der Befehl durchsucht nicht das gesamte Dateisystem, sondern durchsucht eine regelmäßig aktualisierte Dateidatenbank im System. Dadurch wird die Suche viel schneller abgeschlossen.
In diesem Tutorial erfahren Sie, wie Sie locate
installieren und verwenden Befehl unter Linux.
Voraussetzungen
- Ein System, auf dem Linux ausgeführt wird.
- Ein Konto mit Administratorrechten.
So installieren Sie locate
Je nachdem, welche Linux-Distribution Sie verwenden, wird die Datei locate
Paket darf nicht vorinstalliert sein.
Um zu prüfen, ob locate
installiert ist, geben Sie ein:
locate
Wenn locate
auf Ihrer Distribution installiert ist, gibt der Befehl die folgende Ausgabe aus:
Für dieses Tutorial haben wir Ubuntu 20.04 verwendet, das nicht mit locate
geliefert wird Dienstprogramm vorinstalliert. In diesem Fall lautet die Ausgabenachricht:
Installieren Sie locate unter Ubuntu und Debian
Führen Sie die folgenden Schritte aus, um locate
zu installieren unter Ubuntu oder Debian:
1. Aktualisieren Sie das Paket-Repository:
sudo apt update
2. Installieren Sie locate
Paket durch Ausführen von:
sudo apt install mlocate
Installieren Sie locate unter CentOS und Fedora
Führen Sie die folgenden Schritte aus, um locate
zu installieren auf CentOS oder Fedora:
1. Aktualisieren Sie das Paket-Repository:
sudo yum -y update
2. Führen Sie den folgenden Befehl aus, um locate
zu installieren :
sudo yum install mlocate
Verwendung des locate-Befehls unter Linux mit Beispielen
Der locate
Der Befehl findet Dateien in Linux anhand des Dateinamens. locate
wird verwendet, um sofortige Ergebnisse zu erhalten, und es ist ein wesentliches Dienstprogramm, wenn Geschwindigkeit eine Priorität ist.
Der Befehl führt die Suche unter Verwendung einer Datenbank durch, die Teile von Dateien mit den entsprechenden Pfaden im System enthält. Jedoch locate
sucht nicht nach Dateien außerhalb der Datenbank, d. h. es werden keine Dateien gemeldet, die nach der letzten Datenbankaktualisierung erstellt wurden.
Die Syntax für locate
Befehl ist:
locate [options] [pattern]
Einige nützliche Optionen sind:
Option | Beschreibung |
---|---|
-A, --all | Zeigt nur die Einträge an, die mit allen angegebenen Mustern übereinstimmen. |
-b, --basename | Gleicht nur den Basisnamen mit den angegebenen Mustern ab. |
-c, --count | Gibt statt der Dateinamen die Anzahl der übereinstimmenden Einträge aus. |
-d, --database [DBPATH] | Ersetzt die Standarddatenbank durch [DBPATH] - eine durch Doppelpunkte getrennte Liste von Datenbankdateinamen. |
-e, --existing | Zeigt nur Einträge für vorhandene Dateien an. |
-L, --follow | Überprüfen Sie, ob Dateien vorhanden sind, wenn --existing Option angegeben ist. Der --follow Option lässt defekte symbolische Links weg. |
-i, --ignore-case | Ignoriert die Groß-/Kleinschreibung von Mustern. |
-p, --ignore-spaces | Ignoriert Satzzeichen und Leerzeichen beim Abgleich von Mustern. |
-t, --transliterate | Verwendet iconv Transliteration, um Akzente und diakritische Zeichen beim Abgleich von Mustern zu ignorieren. |
-l, --limit, -n [LIMIT] | Verwenden Sie diese Option, um erfolgreich zu beenden, nachdem Sie ein [LIMIT] gefunden haben Anzahl der Einträge. |
-0, --null | Trennt Ausgabeeinträge mit dem ASCII NUL Zeichen, anstatt jeden Eintrag in einer neuen Zeile auszugeben. |
-S, --statistics | Gibt die Statistik über jede gelesene Datenbank auf die Standardausgabe aus, anstatt nach Dateien zu suchen. |
-q, --quiet | Versteckt alle Fehler, die beim Lesen und Verarbeiten von Datenbanken aufgetreten sind. |
-r, --regexp [REGEXP] | Verwendet für die Suche nach einem einfachen regulären Ausdruck [REGEXP] . Die Angabe dieser Option lässt [pattern] nicht zu Argumente. |
-w, --wholename | Gleicht nur den gesamten Pfadnamen mit den angegebenen Mustern ab. |
-h, --help | Zeigt die Hilfedatei mit einer Liste aller verfügbaren Optionen an. |
In den folgenden Abschnitten sind hilfreiche Beispiele für die Verwendung von locate
aufgeführt Befehl.
Nach einer Datei suchen
Die einfachste Art, locate
zu verwenden Befehl ist die Eingabe des Musters, nach dem Sie suchen möchten.
Suchen Sie beispielsweise nach allen Dateien, die mysql enthalten Muster im Dateinamen, indem Sie den folgenden Befehl ausführen:
locate mysql
Die Ausgabe listet alle absoluten Pfade für die Dateien auf, die mysql enthalten Muster im Dateinamen.
Ausgabe formatieren
Wenn das Suchergebnis eine lange Liste von Dateien ist, leiten Sie locate
weiter Befehl in less
für bessere Lesbarkeit und einfacheres Scrollen.
Zum Beispiel:
locate mysql | less
Navigieren Sie durch die Ausgabe, indem Sie die Leertaste drücken vorwärts gehen, b zum Umkehren oder Q beenden.
Vorhandene Dateien anzeigen
Während die locate
Befehl Ergebnisse fast augenblicklich abruft, die Geschwindigkeit hat ihren Preis. Manchmal erscheinen gelöschte Dateien in den Ergebnissen, weil die Datenbank locate
reads wurde nicht aktualisiert, seit die Dateien gelöscht wurden. Außerdem erscheinen keine neuen Dateien in den Ergebnissen, wenn sie nach der letzten Datenbankaktualisierung erstellt wurden.
Beseitigen Sie diese Mängel mit dem -e
Option, das Dateisystem zu durchsuchen und nur die vorhandenen Dateien in die Ergebnisse aufzunehmen.
Zum Beispiel:
Im obigen Beispiel haben wir zuerst eine Datei mit rm
gelöscht . Suche nach der Datei mit locate
zeigt den Speicherort der gelöschten Datei. Bei Verwendung des -e
Option locate
zeigt keine Ergebnisse an, seit die Datei entfernt wurde.
Bestehende Dateien zählen
Geben Sie die Anzahl der übereinstimmenden Dateien anstelle der Dateinamen und ihrer absoluten Pfade aus, indem Sie -c
angeben Option.
Zum Beispiel:
locate -c mysql
Die Ausgabe enthält nur die Anzahl der Dateien, die mysql enthalten Zeichenfolge im Dateinamen. Alle anderen Informationen werden unterdrückt.
Fehler beim Suchen deaktivieren
Das -q
Option weist locate
an um Fehler zu unterdrücken, die beim Lesen einer Datenbank auftreten könnten.
Im folgenden Beispiel locate
verwendet eine andere Datenbank, um die Suche durchzuführen. Der Befehl meldet zunächst, dass die Datenbank nicht existiert.
Die Angabe von -q
Option unterdrückt den Fehler:
Begrenzen Sie die Anzahl der Suchergebnisse
Begrenzen Sie die Anzahl der Suchergebnisse mit dem -n
Option, um redundante Ergebnisse zu vermeiden. Begrenzen Sie die Suche beispielsweise auf nur zehn Ergebnisse, indem Sie Folgendes eingeben:
locate *.txt -n 10
Die Ausgabe zeigt nur die ersten zehn Dateien, die dem Suchmuster entsprechen.
Groß-/Kleinschreibung ignorieren
Standardmäßig locate
führt bei der Verarbeitung der Eingabeabfrage eine Suche mit Berücksichtigung der Groß-/Kleinschreibung durch. Weisen Sie locate
an um Groß- und Kleinschreibung mit -i
zu ignorieren Option.
Im folgenden Beispiel haben wir zuerst nach example_file gesucht in Kleinbuchstaben und locate
zeigte keine Ausgabe, da der Dateiname Großbuchstaben enthält.
Die Suche nach der Datei in Großbuchstaben zeigt den Speicherort der Datei:
Führen Sie die gleiche Suche in Kleinbuchstaben durch und geben Sie -i
an Option ignoriert Groß- und Kleinschreibung und zeigt die Datei in der Ausgabe:
Nach einer Datei mit einem genauen Namen suchen
Standardmäßig locate
parst das Eingabemuster als String und zeigt alle Dateien an, die das Eingabemuster im Dateinamen enthalten. Suchen Sie beispielsweise nach mysql zeigt alle Dateien, die mysql enthalten Zeichenfolge als Teil des Dateinamens anstelle von Dateien, deren vollständiger Dateiname mysql ist .
Suchen Sie mithilfe von -r
nach einer Datei mit einem genauen Namen (regulärer Ausdruck) Option.
Zum Beispiel:
Die Ausgabe zeigt nur die Dateien, deren Dateiname vollständig mit dem Eingabemuster übereinstimmt.
Ausgabeeinträge mit ASCII NUL trennen
Die Ausgabeeinträge, die locate
produziert werden durch einen Zeilenumbruch getrennt (\n
) Charakter. Verwenden Sie -0
Option zum Trennen von Einträgen mit ASCII NUL
anstelle des Zeilenumbruchzeichens.
Zum Beispiel:
locate -0 apache
Das Standardtrennzeichen ist nicht mehr das Zeilenumbruchzeichen, und die Einträge werden mit ASCII NUL
getrennt .
Datenbankstatistik anzeigen
Der locate
Mit dem Befehl können Sie verschiedene Datenbankstatistiken anzeigen, einschließlich der Anzahl der in der Datenbank gespeicherten Verzeichnisse und Dateien. Um Datenbankstatistiken anzuzeigen, geben Sie -S
an Möglichkeit:
locate -S
Die Ausgabe gibt an, welche Datenbank locate
verwendet, die Anzahl der Verzeichnisse und Dateien und die Datenbankgröße in Byte.
Lokalisierungsdatenbank aktualisieren
Die Datenbank, die locate
verwendet automatisch Updates täglich zur gleichen Zeit. Führen Sie den folgenden Befehl aus, um die Datenbank manuell zu aktualisieren und sicherzustellen, dass der Dateiindex korrekt ist:
sudo updatedb
Der Aktualisierungsvorgang dauert einige Sekunden, je nach Anzahl der Dateien auf dem System.
Wählen Sie eine andere mlocate-Datenbank aus
Weisen Sie locate
an um eine andere Datenbank als die Standarddatenbank zu verwenden, indem Sie -d
angeben Möglichkeit. Die Funktion ist hilfreich, wenn Sie nach Ergebnissen suchen, die in der Standardeinstellung mlocate
nicht vorhanden sind Datenbank.
Um eine andere Datenbank anzugeben, verwenden Sie die folgende Syntax:
locate -d [new database path] [pattern]
Diakritische Zeichen und Akzentunterschiede ignorieren
Der locate
Der Befehl verwendet gewöhnliche Buchstaben für den Ergebnisabgleich, was bedeutet, dass Dateinamen, die Buchstaben mit diakritischen Zeichen enthalten, nicht in den Suchergebnissen erscheinen. Verwenden Sie das -t
Option zum Anweisen von locate
solche Unterschiede zwischen Buchstaben zu ignorieren und diakritische Zeichen in die Ergebnisse aufzunehmen.
Zum Beispiel:
Auf der Suche nach dem netten Café Muster zeigt im obigen Beispiel keine Ergebnisse, da der Dateiname ein diakritisches Zeichen enthält. Erneutes Suchen nach demselben Muster und Spezifizieren des -t
Option zeigt das nette Café Dateipfad als Ergebnis, wobei das diakritische Zeichen im Dateinamen ignoriert wird.