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

Der Linux-Befehl zum Suchen des Verzeichnisses:Erklärt

Möglicherweise müssen Sie ein Verzeichnis in Ihrem Linux-basierten Betriebssystem finden, und Sie leiden, weil Sie den tatsächlichen Befehl nicht kennen, um den Speicherort verschiedener Dateien zu finden, die auf Ihrem Linux-basierten Betriebssystem vorhanden sind. Zu diesem Zweck wird der Linux-Befehl find directory verwendet.

Der Find-Befehl wird verwendet, um nach dem Speicherort von Dateien sowohl in Unix- als auch in Linux-basierten Systemen zu suchen. Der find-Befehl ist im „findutils“-Paket enthalten und in allen Linux-Distributionen vorhanden. Sie können nach Verzeichnissen und Dateien suchen, während Sie zahlreiche Bedingungen anwenden. Die Aktion wird gemäß Ihren angewendeten Bedingungen durchgeführt, die sich auf das Ergebnis auswirken.

Einführung in den Linux-Befehl Verzeichnis suchen

Die einfachste Form des Find-Befehls ist gegeben durch:

find [paths] [expression] [actions]

Die anderen Formen des Find-Befehls werden so angegeben, dass bei der Ausführung des Find-Befehls in jedem Pfad nach Verzeichnissen und Dateien gesucht wird. Sobald es ein Verzeichnis im angegebenen Pfad findet, beginnt es mit der Suche nach anderen Dateien und Verzeichnissen im selben Pfad. Dieser Prozess hört nicht auf, bis Sie nach allen Dateien in Ihrem angegebenen Pfad gesucht haben.

find /where/to/look/up criteria action
find /dir/path/look/up criteria action
find /dir/path/look/up -name "name-of-dir"
find /dir/path/look/up -name "pattern"
find /dir/path/look/up -name "name-of-dir" -print
find /dir/path/look/up -name "name-of-dir"
find / -name "name-of-dir"
find / -type d -name "name-of-dir"
find / -type d -name "name-of-dir" 2>/dev/null

Alle Verzeichnisse und Dateien durchsuchen

Wenn Sie die Liste aller Dateien und Verzeichnisse aus Ihrem angegebenen Pfad wünschen, können Sie dies tun, indem Sie den Pfad angeben. Wenn Sie beispielsweise eine Liste aller Dateien aus dem Pfad usr/share wünschen, können Sie den folgenden Befehl verwenden:

find /usr/share

Wenn Sie Dateien aus mehr als einem Verzeichnis gleichzeitig auflisten möchten, können Sie den folgenden Befehl verwenden:Sobald Sie diesen Befehl ausführen, wird eine Liste aller Verzeichnisse und Dateien von Ihrem angegebenen Pfad auf der Konsole aufgelistet. Die Liste kann basierend auf Ihren gespeicherten Inhalten sehr lang sein.

find /bin /usr/li

Angenommen, Sie möchten eine Inhaltsliste, die direkt in Ihrer aktuellen Arbeit vorhanden ist. Das geht schnell, indem man nach dem Find-Befehl einen Punkt (.) setzt, einfach so:

find .

Wenn Sie irgendwie vergessen, den Punkt nach dem Find-Befehl einzufügen, werden immer noch Daten aus dem aktuellen Arbeitsverzeichnis angezeigt, wenn Sie nur den Find-Befehl ausführen.

find

Elemente nach Namen filtern

Oftmals ist es notwendig, verschiedene Elemente mit Hilfe ihrer Namen zu filtern. Der Linux-Befehl find directory kann Ihnen dabei ebenfalls helfen.

Angenommen, Sie möchten nach einer Datei mit dem Namen NEW.txt suchen, die sich im Verzeichnis /Desktop befindet, dann können Sie den Schalter „-name“ wie unten gezeigt verwenden:

find Desktop -name NEW.txt

Bei Verwendung des Schalters „-name“ wird eher zwischen Groß- und Kleinschreibung unterschieden. Um einen Befehl ohne Berücksichtigung der Groß-/Kleinschreibung zu verwenden, können Sie "-iname" anstelle von "-name"

verwenden
find Desktop -iname new.txt

Beide Schalter unterstützen "Wildcards", die als Platzhalter für unbekannte Zeichen verwendet werden. Der Platzhalter "* " wird verwendet, um eine beliebige Anzahl unbekannter Zeichen anzuzeigen, während "?" ist an ein einzelnes unbekanntes Zeichen gewöhnt.

Um diese Platzhalter zu verwenden, müssen Sie den Parameter des Befehls "name / iname" in doppelte oder einfache Anführungszeichen setzen.

Angenommen, Sie möchten nach allen Dateien im /Desktop-Verzeichnis suchen, die an ihrem letzten .txt enthalten. Dann kann dies mit dem folgenden Linux-Suchverzeichnisbefehl erfolgen:

find Desktop -name '*.txt'

Wenn Sie nun nach Dateien suchen möchten, deren Name drei Zeichen enthält, können Sie "?" in Anführungszeichen eingeschlossener Platzhalter.

find Desktop -name '???'

Festlegen der Suche nach Dateien oder Verzeichnissen

Wenn Sie den Linux-Befehl zum Suchen des Verzeichnisses verwenden, können Sie auch den Typ Ihrer Suche angeben. Sie können den Schalter "-type" verwenden, um anzugeben, dass Sie entweder nur nach Dateien oder Verzeichnissen suchen. Es gibt insgesamt drei Parameter des Schalters "-type":

  • f - Dateien
  • d - Verzeichnisse
  • l - symbolische Links

Wenn Sie alle Verzeichnisse finden möchten, die im /usr-Pfad vorhanden sind, können Sie Folgendes verwenden:

find /usr -type d

Es gibt eine andere Möglichkeit, Schalter zu verwenden, indem man sie kombiniert. Zum Beispiel, um mit dem Schalter -name nach ".txt" zu suchen und gleichzeitig den Dateityp mit dem Schalter "-type" anzugeben:

find /usr -type f -name '*.txt'

Wie im obigen Beispiel können Sie Verzeichnisse auch finden, indem Sie den Parameter "d" im /usr-Pfad verwenden. Um Verzeichnisse mit dem Namen "cherrytree" zu finden:

find /usr -type d -name 'cherrytree'

Empty-Schalter zum Finden leerer Dateien

Sie können den Schalter „-empty“ innerhalb von Linux innerhalb des Linux-Befehls „Verzeichnis suchen“ verwenden. Dieser Schalter wird verwendet, um leere Dateien oder leere Verzeichnisse zu finden, die in Ihrem angegebenen Pfad vorhanden sind. Um leere Dateien im /usr-Verzeichnis zu finden, können Sie den folgenden Befehl mit dem "-type"-Schalter anwenden:

find /usr -type d -empty

Verneinung von Übereinstimmungen in Suchbefehlen

Wenn Sie etwas von der Suche ausschließen möchten, können Sie die Bedingung mit dem Befehl find negieren.

Angenommen, Sie möchten im Verzeichnis /usr nach Dateien ohne die Erweiterung ". Py" suchen. Sie können ein Ausrufezeichen (!) mit dem Schalter „-name“ einfügen, wie unten gezeigt:

find /usr -type f ! -name '*.py'

Das Ausrufezeichen kann auch verwendet werden, um jedem anderen Schalter entgegenzuwirken. Beispielsweise können Sie bei einem "-leeren" Schalter "!" statt nach leeren Verzeichnissen nach nicht leeren Verzeichnissen zu suchen.

find /usr -type f ! -empty

Suchen von Dateien basierend auf ihrem Eigentum

Es gibt eine Option zum Suchen von Dateien basierend auf dem Eigentum des Benutzers. Sie können den Schalter „-user“ verwenden, um nach Dateien zu suchen, die sich auf einen bestimmten Benutzer beziehen. Wenn Sie nach Dateien suchen möchten, die mit einem Benutzer namens "root" zusammenhängen, können Sie den folgenden Befehl anwenden, um eine Liste aller seiner Dateien zu erhalten.

find / -type f -user root

Anstelle des Benutzernamens können Sie auch die Benutzer-ID verwenden, um nach allen Dateien zu suchen, die diesem Benutzer gehören. Wenn Sie Ihre Benutzer-ID nicht kennen, können Sie sie mit dem folgenden Befehl ermitteln.

id -u <username>

Sie können auch gruppenweise mit Hilfe des Gruppennamens oder der Gruppen-ID suchen. Um Ihre Gruppen-ID zu finden, können Sie den folgenden Befehl verwenden.

id -g <username>

Dateien anhand ihrer Größe suchen

Der Linux-Befehl find directory ermöglicht es Ihnen auch, Dateien basierend auf ihrer Größe zu suchen. Zu diesem Zweck wird der Schalter „-size“ verwendet, der nur auf Dateien, nicht auf Verzeichnisse angewendet wird.

Sie können die Dateigröße angeben, indem Sie eine Zahl gefolgt von einem Buchstaben eingeben. Diese Buchstaben werden mit dem Schalter "-size" verwendet,

  • c-Bytes
  • k - Kilobyte
  • m - Megabyte
  • g - Gigabyte

Sie können auch eine Kleiner-als- oder Größer-als-Bedingung mit Hilfe von "+"- und "-"-Zeichen anwenden.

Hier ist ein Beispiel, um alle Systemdateien mit einer Größe von 20 KB zu finden:

find / -size 20k

Wenn Sie nach Dateien suchen möchten, die größer als 1 GB sind, können Sie Folgendes verwenden:

find / -size +1G

Falls Sie Dateien mit einer Größe von weniger als 20 MB möchten, können Sie die folgende Anweisung verwenden:

find / -size -20M

Aktionen mit dem Befehl Verzeichnis suchen

Die Befehle, die wir bisher verwendet haben, dienen nur dazu, die Ergebnisse auf dem Terminal anzuzeigen, aber es gibt einige Aktionen, die wir mit Hilfe des Befehls find ausführen können. Wir können auch notwendige Aktionen wie das Kopieren oder Löschen einer Datei durchführen.

Zum Löschen von Dateien

Sie können jede Datei oder jedes Verzeichnis einfach löschen, indem Sie einfach "-delete" mit Ihrem Suchbefehl verwenden. Angenommen, Sie möchten alle leeren Dateien im /Desktop-Verzeichnis löschen, dann können Sie den folgenden Befehl verwenden:

find Desktop -type f -empty -delete

Befehlsausführung

Der Schalter „-exec“ wird verwendet, um einen benutzerdefinierten Befehl auszuführen. Mit Hilfe des Schalters "-exec" können Sie viel machen.

Um alle Dateien auf einmal zu kopieren, können Sie verwenden:

find ~ -type f -name '*.mp3' -exec cp {} ';'

Im obigen Befehl verwenden wir ";" um das in Anführungszeichen eingeschlossene Ende des Befehls anzuzeigen. Die "{}" (Klammern), die Sie sehen, werden verwendet, um den Speicherort zu definieren.

Wenn nun eine übereinstimmende Datei gemäß der angegebenen gefunden wird, wird der cp-Befehl aktiviert, um die Dateien vom Speicherort zu verschieben.

Schlussfolgerung

Mit Hilfe des Find-Befehls können Sie noch viel mehr tun. Es ist praktisch für diejenigen, die an Linux CLI (Befehlszeilenschnittstelle) gewöhnt sind. Der Find-Befehl ist vollgepackt mit vielen Möglichkeiten, die Ihnen helfen, verschiedene Aktionen auszuführen und noch viel mehr zu tun. Es gibt auch Anleitungen zu den Linux-Befehlen zum Verschieben und Kopieren, werfen Sie einen Blick darauf.


Linux
  1. Meistern Sie den Linux-ls-Befehl

  2. Finden Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

  3. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  4. Der Befehl locate unter Linux

  5. Linux-Befehl zum Verschieben des Verzeichnisses

So ermitteln Sie die Gesamtgröße eines Verzeichnisses in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

Der Timer-Befehl in Linux

Arping-Befehl unter Linux erklärt

15 super nützliche Beispiele für den Find-Befehl in Linux

Der Linux-CP-Befehl – ​​erklärt und leicht gemacht