Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Warum durchsucht find unter Linux nicht das angegebene Unterverzeichnis?

Warum durchsucht find unter Linux nicht das angegebene Unterverzeichnis?

WBOY
Freigeben: 2022-07-12 15:30:35
Original
4691 Leute haben es durchsucht

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“. ..".

Warum durchsucht find unter Linux nicht das angegebene Unterverzeichnis?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Warum durchsucht find unter Linux nicht das angegebene Unterverzeichnis?

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
Nach dem Login kopieren

Wenn Sie nach suchen Dateiname lautet:

find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -name "cdr_*.conf" -print
Nach dem Login kopieren

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
Nach dem Login kopieren

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"
Nach dem Login kopieren

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"
Nach dem Login kopieren

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 ]   {} \;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage