Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Ausführliche Erläuterung der Verwendung des Befehls „find' unter Linux

Ausführliche Erläuterung der Verwendung des Befehls „find' unter Linux

巴扎黑
巴扎黑Original
2017-09-04 14:00:003273Durchsuche

In Windows können Sie nach Dateien in bestimmten Pfaden suchen oder festlegen, dass in bestimmten Pfaden nicht nach Dateien gesucht wird. Lassen Sie uns den Befehl find in Kombination mit dem Parameter -path -prune verwenden, um zu sehen, wie dies implementiert wird Linux. Diese Funktion.

Angenommen, Sie suchen nach einer Datei im aktuellen Verzeichnis und es gibt viele Dateien und Verzeichnisse (mehrstufige Verzeichnisse) im aktuellen Verzeichnis, einschließlich dir0, dir1, dir2 ... und dir00, dir01. ..dir10, dir11 ...und andere Unterverzeichnisse.

1. Alle TXT-Suffixdateien im aktuellen Verzeichnis finden

./ -name *.txt finden

2. Im Verzeichnis dir0 und den Unterverzeichnissen des aktuellen Verzeichnisses suchen txt-Suffixdatei

find ./ -path './dir0*' -name *.txt

3. Im Unterverzeichnis dir00 und seinen Unterverzeichnissen unter dem Verzeichnis dir0 im aktuellen Verzeichnis Finden Sie txt Suffixdatei

find ./ -path '*dir00*' -name *.txt

4. Suchen Sie die TXT-Suffixdatei

find . / -path './dir0*' -a -prune -o -name *.txt -print

Erklärung: -a sollte die Abkürzung von and sein, was logischen Operator bedeutet' oder '(&&); -o sollte die Abkürzung von or sein, was den logischen Operator „und“ (||) bedeutet. -not bedeutet nicht

Die Bedeutung der Befehlszeile ist: Wenn das Verzeichnis dir0 existiert (d. h. die linke Seite). Seite von -a ist wahr), dann finden Sie den Wert von -prune, -prune gibt true zurück, der logische Ausdruck 'AND' ist wahr (das heißt, -path './dir0*' -a -prune ist wahr), der Der Befehl „find“ wird außerdem in einem anderen Verzeichnis als diesem Verzeichnis nach der TXT-Suffixdatei suchen und diese ausdrucken. Wenn das Verzeichnis dir0 nicht existiert (d. h. die linke Seite von -a ist falsch), ist dies bei -prune nicht der Fall ausgewertet und der logische Ausdruck „AND“ ist falsch, dann wird im aktuellen Verzeichnis nach allen TXT-Suffixdateien gesucht.

5. TXT-Suffixdateien in anderen Verzeichnissen als dir0, dir1 und Unterverzeichnissen finden

find ./ /( -path './dir0*' -o -path './ dir1*' /) -a -prune -o -name *.txt -print

Hinweis: Klammern () geben die Kombination von Ausdrücken an. Das heißt, es weist die Shell an, die folgenden Zeichen nicht speziell zu interpretieren, sondern es dem Befehl „find“ zu überlassen, ihre Bedeutung zu interpretieren. Da Klammern nicht direkt in der Befehlszeile verwendet werden können, müssen Sie den Backslash „/“ verwenden, um sie zu maskieren (d. h. das Escape-Zeichen „/“ sorgt dafür, dass die Befehlszeile die Klammern erkennt). Beachten Sie außerdem, dass für „/(“, „/)“ auf beiden Seiten Leerzeichen erforderlich sind.

6. TXT-Suffixdateien in dir0, dir1 und Unterverzeichnissen finden

find ./ /( -path './dir0*' -o -path './dir1*' / ) - a -name *.txt -print

+1. TXT-Suffixdateien in allen Verzeichnissen mit dem Namen dir_general finden

find ./ -path '*/dir_general/*' -name *.txt - drucken

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Verwendung des Befehls „find' unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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