Wie der Name schon sagt, wird der locate-Befehl in Linux zum Lokalisieren (Durchsuchen) einer Datei verwendet. Es hat die folgende Syntax:
locate [options] filename
Obwohl es wirklich einfach ist, den Befehl locate zu verwenden, ist er mit vielen Wenns und Abers verbunden. Wenn eine Datei nicht gefunden wird, bedeutet dies nicht unbedingt, dass die Datei nicht auf dem System vorhanden ist.
Lassen Sie sich jetzt nicht verwirren. Ich werde erklären, wie der Befehl locate funktioniert und wie Sie ihn zum Suchen von Dateien verwenden können.
Locate-Befehl unter Linux verwenden
Der Befehl locate arbeitet mit einem Index, d. h. einer Datenbank mit Dateispeicherorten. Wenn Sie den Befehl verwenden, bezieht er sich auf diesen Index, anstatt das gesamte Dateisystem zu durchsuchen. Das ist der Grund, warum locate Dateien unter Linux superschnell findet.
Einige Linux-Distributionen indizieren regelmäßig automatisch das gesamte Dateisystem. Sie können diesen Index auch manuell erstellen (ich zeige ihn Ihnen später in diesem Artikel).
Die Verwendung des Befehls „locate“ ist kinderleicht. Sie müssen nur den Dateinamen angeben:
locate filename
Das Ergebnis zeigt alle Orte, an denen die von Ihnen angegebene Datei gefunden wurde.
[email protected]:~$ locate desktop.iso
/home/abhishek/desktop.iso
Das Beste daran ist, dass Sie sich nicht in einem bestimmten Verzeichnis befinden müssen, um die Datei zu finden. Denken Sie daran, dass der Befehl locate nicht das Dateisystem, sondern den Index durchsucht. Aus diesem Grund müssen Sie bei der Suche nach Dateien keinen Pfad oder kein Verzeichnis angeben.
Sie können auch eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen, indem Sie die Option -i verwenden:
[email protected]:~$ locate -i desktop.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Beachten Sie, dass das Ergebnis möglicherweise alle Dateien anzeigt, die den Suchbegriff in ihrem Namen enthalten.
[email protected]:~$ locate -i desktop
/home/abhishek/eoan-desktop-amd64.iso
/home/abhishek/Bionic-Desktop-amd64.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Sie können Regex auch mit locate:
verwendenlocate -r regex_expression
Verwendung von updatedb zur Erstellung Ihres eigenen Index für den Locate-Befehl
Dies dient nur zu Informationszwecken und ich glaube nicht, dass Sie es verwenden müssen.
Wenn Sie einen Index des aktuellen Verzeichnisses (und seiner Unterverzeichnisse) erstellen möchten, können Sie den Befehl updatedb wie folgt verwenden:
updatedb -l0 -U my_directory -o index_file
Sobald Sie diese Indexdatei erstellt haben, können Sie den Befehl locate auffordern, diesen Index explizit zu verwenden:
locate -d index_file file_name
Ist find besser als der Find-Befehl?
Wenn Sie nach Dateien in einer Verzeichnisstruktur suchen möchten, die sich nicht viel ändert, ist der Befehl locate eine gute Option. Es ist auch superschnell.
Aber der Find-Befehl gibt Ihnen viele Optionen, besonders um komplexe Suchoptionen auszuführen.
Beide Befehle haben ihre Verwendung. Meiner Meinung nach, wenn Sie sich faul fühlen und ein schnelles Ergebnis wünschen, verwenden Sie locate. Wenn Ihnen das Ergebnis nicht gefällt, wechseln Sie zum Suchbefehl.
Was denkst du?