find command unix
Einführung in den Befehl 'Suchen' unter Unix: Durchsuchen Sie Dateien und Verzeichnisse mit dem Befehl 'Datei suchen' von Unix
Der Befehl Unix find ist ein leistungsstarkes Dienstprogramm zum Suchen nach Dateien oder Verzeichnissen.
Die Suche kann auf verschiedenen Kriterien basieren und die übereinstimmenden Dateien können durch definierte Aktionen ausgeführt werden. Dieser Befehl senkt rekursiv die Dateihierarchie für jeden angegebenen Pfadnamen.
=> Klicken Sie hier für die komplette Unix Tutorial-Reihe
Was du lernen wirst:
Was ist Regressionstest mit Beispiel
Befehl unter Unix suchen
Syntax:
find (options) (paths) (expression)
Mit den Optionen für diesen Befehl wird festgelegt, wie symbolische Links behandelt werden sollen. Darauf folgt eine Reihe von Pfaden, in denen gesucht werden soll. Wenn keine Pfade angegeben sind, wird das aktuelle Verzeichnis verwendet. Der angegebene Ausdruck wird dann für jede der in den Pfaden gefundenen Dateien ausgeführt.
Der Ausdruck besteht aus einer Reihe von Optionen, Tests und Aktionen, die jeweils einen Booleschen Wert zurückgeben. Der Ausdruck wird für jede Datei im Pfad von links nach rechts ausgewertet, bis das Ergebnis bestimmt ist, d. H. Das Ergebnis ist als wahr oder falsch bekannt.
- Optionsausdrücke werden verwendet, um die Suchoperation einzuschränken, und geben immer true zurück.
-
- -depth: Verarbeitet den Verzeichnisinhalt, bevor das Verzeichnis selbst verarbeitet wird.
- -maxdepth: Die maximalen Ebenen unterhalb der angegebenen Pfade, um für eine Übereinstimmung abzusteigen.
- -mindepth: Die minimalen Ebenen jenseits der angegebenen Pfade, die vor dem Abgleich absteigen sollen.
-
- Testausdrücke werden verwendet, um bestimmte Eigenschaften der Dateien auszuwerten und entsprechend true oder false zurückzugeben. (Wo immer eine Zählung 'n' verwendet wird: Ohne Präfix ist die Übereinstimmung für den exakten Wert von n; mit einem Präfix '+' gilt die Übereinstimmung für Werte größer als n; und mit einem Präfix '-' ist die Übereinstimmung für Werte kleiner als n.)
-
- -atime n: Gibt true zurück, wenn vor n Tagen auf die Datei zugegriffen wurde.
- -ctime n: Gibt true zurück, wenn der Status der Datei vor n Tagen geändert wurde.
- -mtime n: Gibt true zurück, wenn der Inhalt der Datei vor n Tagen geändert wurde.
- -name pattern: Gibt true zurück, wenn der Dateiname mit dem angegebenen Shell-Muster übereinstimmt.
- -iname pattern: Gibt true zurück, wenn der Dateiname mit dem angegebenen Shell-Muster übereinstimmt. Die Übereinstimmung hier unterscheidet nicht zwischen Groß- und Kleinschreibung.
- -path pattern: Gibt true zurück, wenn der Dateiname mit dem Pfad mit dem Shell-Muster übereinstimmt.
- -regex pattern: Gibt true zurück, wenn der Dateiname mit dem Pfad mit dem regulären Ausdruck übereinstimmt.
- -size n: Gibt true zurück, wenn die Dateigröße n Blöcke beträgt.
- -perm - mode: Gibt true zurück, wenn alle Berechtigungsbits für mode für die Datei gesetzt sind.
- -Typ c: Gibt true zurück, wenn die Datei vom Typ c ist (z. B. 'b' für Blockgerätedatei, 'd' für Verzeichnis usw.).
- -username: Gibt true zurück, wenn die Datei dem Benutzernamen 'name' gehört.
-
- Die Aktionsausdrücke werden verwendet, um Aktionen zu definieren, die Nebenwirkungen haben und wahr oder falsch zurückgeben können. Wenn keine Aktionen angegeben sind, wird die Aktion '-print' für alle übereinstimmenden Dateien ausgeführt.
-
- -delete: Löscht die übereinstimmende Datei und gibt bei Erfolg true zurück.
- -exec-Befehl: Führen Sie den angegebenen Befehl für jede übereinstimmende Datei aus und geben Sie true zurück, wenn der Rückgabewert 0 ist.
- -ok Befehl: Wie der Ausdruck 'exec', wird jedoch zuerst vom Benutzer bestätigt.
- -ls: Listet die übereinstimmende Datei im Format 'ls -dils' auf.
- -print: Gibt den Namen der passenden Datei aus.
- -prune: Wenn es sich bei der Datei um ein Verzeichnis handelt, steigen Sie nicht in dieses Verzeichnis ab und geben Sie true zurück.
-
- Der Ausdruck wird von links nach rechts ausgewertet und mit den folgenden Operatoren zusammengesetzt.
-
- ( Ausdruck ) : Wird verwendet, um Vorrang zu erzwingen.
- ! Ausdruck: Wird verwendet, um einen Ausdruck zu negieren.
- Ausdruck1 -zu Ausdruck 2: Das Ergebnis ist ein 'und' der beiden Ausdrücke. Der Ausdruck2 wird nur ausgewertet, wenn Ausdruck1 wahr ist.
- Ausdruck1 Ausdruck2: Der Operator 'und' ist in diesem Fall implizit.
- Ausdruck1 -oder Ausdruck 2: Das Ergebnis ist ein 'oder' der beiden Ausdrücke. Der Ausdruck2 wird nur ausgewertet, wenn Ausdruck1 falsch ist.
-
Beispiele
Listen Sie alle im aktuellen Verzeichnis und seiner Hierarchie gefundenen Dateien auf
$ find.
Listen Sie alle in der aktuellen Hierarchie gefundenen Dateien und die gesamte Hierarchie unter / home / xyz auf
$ find. /home/XYZ
Suchen Sie im aktuellen Verzeichnis und seiner Hierarchie nach einer Datei mit dem Namen abc
$ find ./ -name abc
Suchen Sie im aktuellen Verzeichnis und seiner Hierarchie nach einem Verzeichnis mit dem Namen xyz
$ find ./ -type d -name xyz
Suchen Sie nach einer Datei mit dem Namen abc.txt unterhalb des aktuellen Verzeichnisses und fordern Sie den Benutzer auf, jede Übereinstimmung zu löschen.
Beachten Sie, dass die Zeichenfolge '{}' während der Ausführung durch den tatsächlichen Dateinamen ersetzt wird und dass ';' string wird verwendet, um den auszuführenden Befehl zu beenden.
$ find ./ -name abc.txt -exec rm -i {} ;
Suchen Sie nach Dateien, die in den letzten 7 Tagen unterhalb des aktuellen Verzeichnisses geändert wurden
$ find ./ -mtime -7
Suchen Sie nach Dateien, für die alle Berechtigungen in der aktuellen Hierarchie festgelegt sind
$ find ./ -perm 777
Fazit
Kurz gesagt, Find Command in Unix gibt alle Dateien unterhalb des aktuellen Arbeitsverzeichnisses zurück. Mit dem Befehl find kann der Benutzer außerdem eine Aktion angeben, die für jede übereinstimmende Datei ausgeführt werden soll.
=> Klicken Sie hier für die komplette Unix Tutorial-Reihe
Literatur-Empfehlungen
- Befehl in Unix mit Beispielen ausschneiden
- Ls-Befehl unter Unix mit Beispielen
- Dateimanipulation unter Unix: Übersicht über das Unix-Dateisystem
- Unix Cat-Befehlssyntax, Optionen mit Beispielen
- Grep-Befehl unter Unix mit einfachen Beispielen
- Unix-Sortierbefehl mit Syntax, Optionen und Beispielen
- Tar-Befehl unter Unix zum Erstellen von Backups (Beispiele)
- So vergleichen Sie zwei Dateien unter Unix: Dateivergleichsbefehle