Unter Linux können Sie den Parameter „-prune“ des Suchbefehls verwenden, um zu verhindern, dass bei der Suche nach Dateien das angegebene Unterverzeichnis durchsucht wird. Der Suchbefehl wird verwendet, um Dateien im angegebenen Verzeichnis zu finden Der Parameter ist auf „-prune“ gesetzt. Für die Filterung ist lediglich erforderlich, dass der zu ignorierende Pfadparameter unmittelbar auf den gesuchten Pfad folgt, andernfalls funktioniert dieser Parameter nicht. Die Syntax lautet „Suchpfad finden – Pfad des nicht zu findenden Unterverzeichnisses – bereinigen“. ..".
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Bei der Suche unter Linux ist es manchmal notwendig, bestimmte Verzeichnisse zu ignorieren und nicht zu durchsuchen. Sie können den Parameter -prune zum Filtern verwenden, aber Sie müssen darauf achten Pfadparameter müssen unmittelbar nach dem Suchpfad ignoriert werden, da dieser Parameter sonst nicht funktioniert.
Das Beispiel sieht wie folgt aus:
Das Folgende ist eine spezifizierte Suche nach allen Dateien im Verzeichnis /home/carryf, aber der Pfad von /home/carryf/astetc wird ignoriert:
find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -print
Wenn Sie nach suchen Dateiname lautet:
find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -name "cdr_*.conf" -print
Was tun, wenn Sie mehr als zwei Pfade ignorieren möchten?
find /home/carryf −path"/home/carryf/astetc"−o−path"/home/carryf/etc" -prune -o -type f -print find /home/carryf −path"/home/carryf/astetc"−o−path"/home/carryf/etc" -prune -o -type f -name "cdr_*.conf" -print
Beachten Sie, dass davor und danach Leerzeichen stehen.
Um den Inhalt einer Datei zu finden, kann die folgende Anweisung das Problem von Verzeichnissen mit Leerzeichen lösen:
find ./ -name "MySQL*" -print0 |xargs -0 grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"
Wenn das Verzeichnis keine Leerzeichen enthält, kann es in der folgenden Form ausgeführt werden:
find ./ -name "mysql*" |xargs grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"
Wissen erweitern
Linux-Suchbefehl Wird zum Suchen nach Dateien in einem bestimmten Verzeichnis verwendet. Jede Zeichenfolge vor dem Parameter wird als Name des zu durchsuchenden Verzeichnisses behandelt. Wenn Sie diesen Befehl verwenden, ohne Parameter festzulegen, sucht der Befehl „find“ nach Unterverzeichnissen und Dateien im aktuellen Verzeichnis. Und alle gefundenen Unterverzeichnisse und Dateien werden angezeigt.
Syntax
find path -option [ -print ] [ -exec -ok command ] {} \;
Parameterbeschreibung:
find bestimmt Pfad und Ausdruck gemäß den folgenden Regeln. Der Teil vor dem ersten - ( ), ! in der Befehlszeile ist der Pfad und der folgende Teil ist der Ausdruck. Wenn path eine leere Zeichenfolge ist, wird der aktuelle Pfad verwendet. Wenn expression eine leere Zeichenfolge ist, wird -print als Standardausdruck verwendet. In
expression sind bis zu zwanzig oder dreißig Optionen verfügbar, und hier werden nur die am häufigsten verwendeten vorgestellt.
-mount, -xdev: Nur Dateien im selben Dateisystem wie dem angegebenen Verzeichnis prüfen, Dateien in anderen Dateisystemen nicht auflisten
-amin n: In den letzten n Minuten lesen
-anewer file: eine Datei, die war später lesen als Datei Datei
-atime n: eine Datei, die in den letzten n Tagen gelesen wurde
-cmin n: eine Datei, die in den letzten n Minuten geändert wurde
-cnewer Datei: als Datei Datei Aktualisierte Datei
-ctime n: In den letzten n Tagen erstellte Datei
-mtime n: In den letzten n Tagen geänderte Datei
-empty: Leere Datei -gid n oder -group name: gid Ja n oder der Gruppenname ist name
-ipath p, -path p: die Datei, deren Pfadname mit p übereinstimmt, ipath ignoriert den Fall
-name name, -iname name: die Datei, deren Dateiname mit name übereinstimmt. iname ignoriert die Groß-/Kleinschreibung
-size n: Die Dateigröße beträgt n Einheiten, b stellt einen Block von 512 Bytes dar, c stellt die Anzahl der Zeichen dar, k stellt Kilobytes dar und w ist zwei Bytes.
-Typ c: Dateityp ist c.
Empfohlenes Lernen: Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWarum durchsucht find unter Linux nicht das angegebene Unterverzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!