Dieses Tutorial führt Sie durch die verschiedenen Möglichkeiten, ein Verzeichnis in Linux zu finden. Wie Sie vielleicht bereits wissen, ist in Linux alles eine Datei, einschließlich Verzeichnisse. Und eine der gängigen Dinge, die ein Linux-Benutzer in der Befehlszeile macht, ist das Suchen nach einer Datei oder einem Verzeichnis.
Es gibt verschiedene Mittel und Dienstprogramme, die zum Suchen von Dateien in der Befehlszeile verwendet werden, wie find, locate und which. Allerdings wird das letzte Dienstprogramm (which) nur zum Lokalisieren eines Befehls verwendet.
Im Rahmen dieses Tutorials werden wir uns hauptsächlich auf das find-Dienstprogramm konzentrieren, das Dateien auf einem live Linux-Dateisystem sucht und im Vergleich zu locate effizienter und zuverlässiger ist.
Der Nachteil von locate besteht darin, dass es eine oder mehrere von updatedb erstellte Datenbanken liest, es durchsucht nicht ein live Dateisystem. Außerdem bietet es auch keine Flexibilität in Bezug darauf, wo gesucht werden soll (Startpunkt).
Unten finden Sie die Syntax zum Ausführen des locate-Befehls:
# locate [option] [search-pattern]
Um den Nachteil von locate zu demonstrieren, nehmen wir an, wir suchen nach einem Verzeichnis mit dem Namen pkg
im aktuellen Arbeitsverzeichnis.
Hinweis: Im folgenden Befehl gibt die Option --basename
oder -b
locate an, nur den Dateinamen (Verzeichnis) (genau pkg) abzugleichen, aber nicht den Pfad (/path/to/pkg). Wo \
ein Globbing-Zeichen ist, deaktiviert es den impliziten Ersatz von pkg durch *pkg*.
$ locate --basename '\pkg'

Wie aus der obigen Befehlsausgabe ersichtlich ist, sucht locate ab dem Wurzelverzeichnis (/), daher werden andere Verzeichnisse mit demselben Namen gefunden.
Um dieses Problem zu lösen, verwenden Sie find und befolgen Sie die vereinfachte Syntax unten:
$ find starting-point options [expression]
Lassen Sie uns einige Beispiele betrachten.
Um nach dem gleichen Verzeichnis (pkg)
wie oben im aktuellen Arbeitsverzeichnis zu suchen, führen Sie den folgenden Befehl aus, wobei die Flagge -name
den Ausdruck liest, der in diesem Fall der Verzeichnisname ist.
$ find . -name "pkg"
Wenn Sie auf “ Keine Berechtigung “ Fehler stoßen, verwenden Sie sudo-Befehl wie folgt:
$ sudo find . -name "pkg"

Sie können find daran hindern, nach anderen Dateitypen außer Verzeichnissen zu suchen, indem Sie das Flag -type
verwenden, um den Dateityp anzugeben (im folgenden Befehl bedeutet d
Verzeichnis) wie folgt:
$ sudo find . -type d -name "pkg"
Darüber hinaus, wenn Sie das Verzeichnis in einem langen Listenformat auflisten möchten, verwenden Sie den Aktionsschalter -ls
:
$ sudo find . -type d -name "pkg" -ls

Die Option -iname
ermöglicht eine Suche ohne Beachtung der Groß- und Kleinschreibung:
$ sudo find . -type d -iname "pkg" $ sudo find . -type d -iname "PKG"

Um weitere interessante und fortgeschrittene Verwendungsinformationen zu finden, lesen Sie die Handbuchseiten von find und locate.
$ man find $ man locate
Zu guter Letzt ist der find-Befehl beim Suchen von Dateien (oder Verzeichnissen) in einem Linux-System im Vergleich zum locate-Befehl zuverlässiger und effizienter.
Vergessen Sie auch dieses Mal nicht, uns Ihr Feedback oder Fragen über den Kommentarbereich unten zu senden. Bleiben Sie außerdem immer mit Tecmint verbunden.