Verwendung der Befehle find, locate, which und whereis zur Dateisuche in Linux

Es gibt einige Möglichkeiten, wie Sie Dateien über das Terminal in Linux finden und lokalisieren können, und find, locate, which und whereis sind einige der häufig verwendeten Befehle dafür. Lassen Sie uns einen Blick auf diese vier Suchbefehle, ihre Ähnlichkeiten und Unterschiede werfen.
1. find
Der unkomplizierte Ansatz zur Suche nach Dateien in einem bestimmten Verzeichnis ist die Verwendung des Befehls find. Wenn das Verzeichnis, in dem die Suche durchgeführt werden soll, nicht ausdrücklich angegeben ist, wird die Suche im aktuellen Verzeichnis durchgeführt.
Der folgende Screenshot zeigt, wie im aktuellen Verzeichnis (.) eine Suche nach allen Dateinamen durchgeführt wird, die mit der Erweiterung .txt enden.

Die Suche kann auch basierend auf Zeitstempeln, Dateiberechtigungen, Dateigröße, Dateityp, Dateibesitzer usw. durchgeführt werden. Reguläre Ausdrücke können verwendet werden, um die Suchparameter zu steuern. Detailliertere Anweisungen zum Befehl find finden Sie hier.
2. locate
Dieser Befehl ist eine weitere Möglichkeit, Dateien nach Namen zu finden. Der vorherige Befehl durchsucht das angegebene Verzeichnis und gibt dann die Ergebnisse an den Benutzer zurück. Dieses Tool führt die Suche gegen eine Datenbank namens „mlocate.db“ durch, die sich in „/var/lib/mlocate/mlocate.db“ befindet. Diese Datenbank wird jeden Morgen vom Cron-Dienst aktualisiert.
Der Befehl wird schneller ausgeführt als find, da die Suche gegen eine vorhandene Datenbank erfolgt, die bereits die Liste aller Dateien und Verzeichnisse im System kuratiert hat.
locate gefolgt vom Dateinamen zeigt den absoluten Pfad an, wo sich diese Datei befindet.
Angenommen, ein Skript wurde im Home-Verzeichnis erstellt.
Wenn wir versuchen, das neu erstellte und kopierte Skript zu lokalisieren, würden wir keine Ausgabe erhalten.
locate myscriptDa Cron die Datenbank nur morgens aktualisiert, müssen alle Dateien, die tagsüber zum System hinzugefügt werden, manuell aktualisiert werden. Dies kann mit dem Befehl updatedb erfolgen.
sudoupdatedbWenn wir versuchen, das benutzerdefinierte Skript zu „lokalisieren“, kann es die Datei finden.
3. which
Nachdem wir über Befehle zur Dateisuche gesprochen haben, lassen Sie uns zu einem Befehl übergehen, der helfen kann, den absoluten Pfad von ausführbaren Dateien im System zu suchen: which.
Eine ausführbare Datei/Skript/Binärdatei kann an mehreren Orten im System vorhanden sein. which sucht in den Verzeichnissen, die in den Umgebungsvariablen $PATH und $MANPATH angegeben sind, nach der Existenz der angegebenen ausführbaren Datei.
Ohne Schalter zeigt which den ersten gefundenen absoluten Pfad für eine ausführbare Datei an.
Der Schalter -a zeigt alle Vorkommen der gefundenen absoluten Pfade für die angegebene ausführbare Datei an.
Die absoluten Pfade für mehrere ausführbare Dateien können gefunden werden, indem die ausführbaren Dateien nacheinander angegeben werden.
4. whereis
whereis ist ein weiterer Befehl und wird verwendet, um drei Informationen zu einer ausführbaren Datei zu erhalten:
- absoluter Pfad der Binärdatei
- absoluter Pfad, wo der Quellcode dieser Binärdatei im System vorhanden ist
- absoluter Pfad des Handbuchs, das für diese Binärdatei existiert
Für „bzgrep“ befindet sich die Binärdatei in „/bin“, und das Handbuch befindet sich in „/usr/share/man/man1“. Der Quellcode existiert nicht im System.
whereis kann angewiesen werden, nur nach dem absoluten Pfad der Binärdatei zu suchen, indem der Schalter -b verwendet wird. Die Suche kann nur in den Verzeichnissen durchgeführt werden, die nach dem Schalter -B aufgelistet sind. Namen nach -f geben alle Binärdateien an, für die Informationen abgerufen werden müssen.
Ähnlich kann die Suche auf nur Quellcode oder nur Handbücher beschränkt werden, indem die Schalter -s und -m verwendet werden. -S und -M, gefolgt von Verzeichnisnamen, geben die Verzeichnisse an, in denen nach Quellcode und Handbüchern gesucht werden soll.
Der Schalter -l bietet eine detaillierte Auflistung der absoluten Pfade aller Verzeichnisse, die von whereis zur Durchführung der Suche verwendet wurden.

Fazit
Es mangelt nicht an Werkzeugen, um Dateien im Terminal zu finden und zu lokalisieren. Ich hoffe, Sie haben jetzt eine gute Vorstellung von den vier nützlichen Suchwerkzeugen auf Linux-Systemen. Wenn Sie weitere Details zu ihrer Verwendung benötigen, können Sie die Handbuchseiten für eine detaillierte Dokumentation einsehen.