Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Ausführliche Erläuterung der Verwendung des Befehls „find' unter Linux
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 -printErklä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 -printHinweis: 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 - druckenDas 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!