GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Suchen Sie Command in Linux

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 und locate die am häufigsten verwendeten sind.

Der locate Der Befehl ist der schnellste und einfachste Weg, um nach Dateien und Verzeichnissen anhand ihres Namens zu suchen.

In diesem Artikel erklären wir, wie man locate verwendet Befehl.

Installation von locate (Suchbefehl nicht gefunden) #

Abhängig von der Distribution und wie das System bereitgestellt wurde, kann das locate-Paket auf Ihrem Linux-System vorinstalliert sein oder nicht.

Um zu prüfen, ob der locate Dienstprogramm installiert ist, öffnen Sie Ihr Terminal, geben Sie locate ein und drücken Sie Enter . Wenn das Paket installiert ist, zeigt das System locate: no pattern to search for specified an . Andernfalls sehen Sie so etwas wie locate command not found .

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

Installieren Sie locate auf Ubuntu und Debian #

sudo apt update sudo apt install mlocate

Installieren Sie locate auf CentOS und Fedora #

sudo yum install mlocate

Wie funktioniert locate Arbeit #

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

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

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

sudo updatedb

Der Update-Vorgang wird je nach Anzahl der Dateien und Verzeichnisse und der Geschwindigkeit Ihres Systems einige Zeit in Anspruch nehmen.

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

Verglichen mit dem mächtigeren find Befehl, der das Dateisystem durchsucht, locate arbeitet viel schneller, aber es fehlen viele Funktionen und es kann nur nach dem Dateinamen gesucht werden.

So verwenden Sie locate Befehl #

Die Syntax für locate Befehl lautet wie folgt:

locate [OPTION] PATTERN...

In seiner einfachsten Form, wenn es ohne Optionen verwendet wird, ist locate Der Befehl gibt den absoluten Pfad aller Dateien und Verzeichnisse aus, die dem Suchmuster entsprechen und für die der Benutzer Leserechte hat.

Zum Beispiel, um nach einer Datei namens .bashrc zu suchen Sie würden Folgendes eingeben:

locate .bashrc

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

/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 /root/.bashrc Datei wird nicht angezeigt, da wir den Befehl als normaler Benutzer ausgeführt haben, der keine Zugriffsberechtigungen für /root hat Verzeichnis.

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

locate .bashrc | less

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

Der Platzhalter ist ein Symbol, das zur Darstellung von null, einem oder mehreren Zeichen verwendet wird. Zum Beispiel, um nach allen .md zu suchen Dateien auf dem System würden Sie Folgendes eingeben:

locate *.md

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

locate -n 10 *.py

Standardmäßig locate führt Suchen mit Berücksichtigung der Groß-/Kleinschreibung durch. Das -i (--ignore-case )-Option teilt locate mit um die Groß-/Kleinschreibung zu ignorieren und eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen.

locate -i readme.md
/home/linuxize/p1/readme.md
/home/linuxize/p2/README.md
/home/linuxize/p3/ReadMe.md

Um die Anzahl aller übereinstimmenden Einträge anzuzeigen, verwenden Sie -c (--count ) Möglichkeit. Der folgende Befehl würde die Anzahl aller Dateien zurückgeben, die .bashrc enthalten in ihren Namen:

locate -c .bashrc
6

Standardmäßig locate prüft nicht, ob die gefundenen Dateien noch im Dateisystem existieren. Wenn Sie eine Datei nach dem letzten Datenbank-Update gelöscht haben und die Datei dem Suchmuster entspricht, wird sie in die Suchergebnisse aufgenommen.

Um nur die Namen der Dateien anzuzeigen, die zum Zeitpunkt locate existieren ausgeführt wird, verwenden Sie das -e (--existing ) Möglichkeit. Folgendes würde beispielsweise nur die vorhandene .json zurückgeben Dateien:

locate -e *.json

Wenn Sie eine komplexere Suche durchführen müssen, verwenden Sie -r (--regexp )-Option, mit der Sie mit einem einfachen regulären Ausdruck anstelle von Mustern suchen können. Diese Option kann mehrfach angegeben werden.
Zum Beispiel, um nach allen .mp4 zu suchen und .avi Dateien auf Ihrem System und ignorieren Sie die Groß-/Kleinschreibung, würden Sie Folgendes ausführen:

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

Schlussfolgerung #

Der locate Durchsucht das Dateisystem nach Dateien und Verzeichnissen, deren Name einem bestimmten Muster entspricht. Die Befehlssyntax ist leicht zu merken und die Ergebnisse werden fast sofort angezeigt.

Weitere Informationen zu allen verfügbaren Optionen von locate Geben Sie den Befehl man locate ein in Ihrem Terminal.

Wenn Sie Fragen haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Linux-mv-Befehl

  2. Linux-Du-Befehl

  3. Linux-IP-Befehl

  4. Linux-cd-Befehl

  5. Der Befehl locate unter Linux

Welcher Linux-Befehl

Datumsbefehl in Linux

W-Befehl unter Linux

Bei Befehl unter Linux

Df-Befehl unter Linux

15 Praktische Beispiele für den Locate-Befehl unter Linux