Android

Suchen Sie den Befehl unter Linux

Wichtige CMD-Befehle!

Wichtige CMD-Befehle!

Inhaltsverzeichnis:

Anonim

Eine der häufigsten Operationen bei der Arbeit unter Linux ist die Suche nach Dateien und Verzeichnissen. Auf Linux-Systemen gibt es mehrere Befehle, mit denen Sie nach Dateien suchen können, wobei find and locate die am häufigsten verwendeten sind.

Der Befehl locate ist die schnellste und einfachste Möglichkeit, Dateien und Verzeichnisse anhand ihres Namens zu suchen.

In diesem Lernprogramm wird die Verwendung des Befehls locate erläutert.

locate installieren (locate-Befehl nicht gefunden)

Abhängig von der Distribution und der Art der Systembereitstellung ist das locate-Paket möglicherweise auf Ihrem Linux-System vorinstalliert oder nicht.

Um zu überprüfen, ob das Dienstprogramm locate auf Ihrem System installiert ist, öffnen Sie Ihr Terminal, geben Sie locate und drücken Sie die Enter . Wenn das Paket installiert ist, zeigt das System locate: no pattern to search for specified , andernfalls wird so etwas wie locate command not found angezeigt.

Wenn locate nicht installiert ist, können Sie es einfach mit dem Paketmanager Ihrer Distribution installieren.

Installieren Sie locate unter Ubuntu und Debian

sudo apt update sudo apt install mlocate

Installieren Sie locate unter CentOS und Fedora

sudo yum install mlocate

Wie funktioniert die locate ?

Der Befehl locate sucht nach einem bestimmten Muster in einer Datenbankdatei, die vom Befehl updatedb generiert wird. Die gefundenen Ergebnisse werden zeilenweise auf dem Bildschirm angezeigt.

Während der Installation des mlocate-Pakets wird ein Cron-Job erstellt, der den Befehl updatedb alle 24 Stunden ausführt. Dadurch wird sichergestellt, dass die Datenbank regelmäßig aktualisiert wird. Weitere Informationen zum Cron-Job finden Sie in der Datei /etc/cron.daily/mlocate .

Die Datenbank kann manuell aktualisiert werden, indem der Befehl updatedb als root oder Benutzer mit sudo-Berechtigungen ausgeführt wird:

sudo updatedb

Der Update-Vorgang kann einige Zeit in Anspruch nehmen, abhängig von der Anzahl der Dateien und Verzeichnisse und der Geschwindigkeit Ihres Systems.

Dateien, die nach der Datenbankaktualisierung erstellt wurden, werden in den Suchergebnissen nicht angezeigt.

Verglichen mit dem leistungsstärkeren Befehl find , der das Dateisystem durchsucht, arbeitet locate viel schneller, verfügt jedoch nicht über viele Funktionen und kann nur anhand des Dateinamens suchen.

So verwenden Sie den Befehl locate

Die Syntax für den Befehl locate lautet wie folgt:

locate PATTERN…

In seiner einfachsten Form gibt der Befehl locate bei Verwendung ohne Optionen den absoluten Pfad aller Dateien und Verzeichnisse aus, die dem Suchmuster entsprechen und für die der Benutzer Leseberechtigung hat.

Um beispielsweise nach einer Datei mit dem Namen .bashrc zu suchen, .bashrc Sie .bashrc :

locate.bashrc

Die Ausgabe enthält die Namen aller Dateien, deren Namen die Zeichenfolge .bashrc enthalten:

/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Die Datei /root/.bashrc wird nicht angezeigt, da wir den Befehl als normaler Benutzer ausgeführt haben, der keine Zugriffsberechtigungen für das Verzeichnis /root .

Wenn die Ergebnisliste lang ist, können Sie zur besseren Lesbarkeit die Ausgabe an den Befehl less weiterleiten:

locate.bashrc | less

Der Befehl locate akzeptiert auch Muster, die glühende Zeichen wie das Platzhalterzeichen * . Wenn das Muster keine glühenden Zeichen enthält, sucht der Befehl nach *PATTERN* . Deshalb wurden im vorherigen Beispiel alle Dateien angezeigt, deren Namen das Suchmuster enthalten.

Der Platzhalter ist ein Symbol, das für null, ein oder mehrere Zeichen verwendet wird. Um beispielsweise nach allen .md Dateien auf dem System zu suchen, würden Sie Folgendes verwenden:

locate *.md

Um die Suchergebnisse einzuschränken, verwenden Sie die Option -n gefolgt von der Anzahl der Ergebnisse, die angezeigt werden sollen. Der folgende Befehl sucht beispielsweise nach allen .py Dateien und zeigt nur 10 Ergebnisse an:

locate -n 10 *.py

Standardmäßig werden bei der locate Groß- und Kleinschreibung unterschieden. Mit der Option -i ( --ignore-case ) können Sie Groß- und Kleinschreibung ignorieren und die Suche ohne --ignore-case Groß- und Kleinschreibung ausführen.

locate -i readme.md

/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md

Verwenden Sie die Option -c ( --count ), um die Anzahl aller übereinstimmenden Einträge --count . Der folgende Befehl gibt die Anzahl aller Dateien zurück, deren Namen .bashrc enthalten:

locate -c.bashrc

6

Standardmäßig überprüft locate nicht, ob die gefundenen Dateien noch im Dateisystem vorhanden sind. Wenn Sie eine Datei nach der letzten Datenbankaktualisierung gelöscht haben und die Datei mit dem Suchmuster übereinstimmt, wird sie in die Suchergebnisse aufgenommen.

Verwenden Sie die Option -e ( --existing ), um nur die Namen der Dateien anzuzeigen, die zum Zeitpunkt der Ausführung von locate sind. Das folgende Beispiel gibt nur die vorhandenen .json Dateien zurück:

locate -e *.json

locate --regex -i "(.mp4|\.avi)"

Fazit

Der Befehl locate durchsucht das Dateisystem nach Dateien und Verzeichnissen, deren Name mit einem bestimmten Muster übereinstimmt. Die Befehlssyntax ist leicht zu merken und die Ergebnisse werden fast sofort angezeigt.

Weitere Informationen zu allen verfügbaren Optionen des Befehlstyps man locate in Ihrem Terminal.

Terminal suchen