Unter Linux wird der Befehl find verwendet, um über die Befehlszeile nach Dateien oder Ordnern zu suchen. Es ist ein komplexer Befehl und hat eine große Anzahl von Optionen, Argumenten und Modi.
Die häufigste Verwendung des find-Befehls ist die Suche nach Dateien entweder mit einem regulären Ausdruck oder mit dem vollständigen Dateinamen, der durchsucht werden soll.
[Das könnte Ihnen auch gefallen:So finden Sie unter Linux Dateien, die eine bestimmte Textzeichenfolge enthalten]
Zum Beispiel, um nach Dateien zu suchen, deren Namen mit ‘file_’ beginnen , können wir ausführen:
$ find . -name 'file_*'
Wie Sie oben sehen können, gibt es die vollständigen Pfade der Dateien aus, die von der Suche zurückgegeben werden. Hier ist der '.'
impliziert das aktuelle Verzeichnis . Find sucht nach dem Dateinamenmuster im aktuellen Verzeichnis, allen Unterverzeichnissen usw. bis zur tiefsten Ebene der Dateistruktur. Ebenso können Sie anstelle von '.'
ein beliebiges anderes Verzeichnis verwenden .
Ausschließen eines Verzeichnisses beim Suchen von Dateien
Nun kann es Situationen geben, in denen ein Benutzer sicher ist, dass ein bestimmter Ordner oder bestimmte Ordner die zu suchende Datei nicht enthalten. Daher ist es eine gute Idee, solche Ordner von der Suche auszuschließen, damit der Befehl die Ergebnisse schneller zurückgibt.
Um ein Verzeichnis von der Suche auszuschließen, verwenden Sie den '-prune'
Argument:
$ find . -name './test' -prune -o -name 'file_*'
Lassen Sie uns zuerst analysieren, was hier vor sich geht.
Der Teil "-name './test' -prune"
impliziert:schließen Sie den Ordner ‘test’ aus vom Suchen. Danach '-o'
sagt dem Befehl:was sonst noch getan werden soll, wenn der Befehl ‘test’ ausschließt . Wir übergeben hier einfach das im vorherigen Beispiel beschriebene Muster.
Dieses Muster wird nun auf allen Ordnern außer „test“ ausgeführt .
Sie können jetzt sehen, dass die Suche tatsächlich den Ordner „test“ ausschließt . Der Ordnername selbst wird jedoch gedruckt.
Schließen Sie einen Verzeichnisnamen aus der Suchausgabe aus
Um dies zu vermeiden, hängen Sie einfach '-print'
an Am Ende. Diese Option schließt den Verzeichnisnamen aus der Ausgabe aus.
$ find . -name './test' -prune -o -name 'file_*' -print
Das Muster hat nun im aktuellen Verzeichnis nach Dateien gesucht und den ‘test’ ausgeschlossen Verzeichnis.
Schlussfolgerung
In diesem Artikel haben wir gesehen, wie Sie ein Verzeichnis ausschließen, wenn Sie mit dem Befehl find nach Dateien suchen. Beachten Sie, dass die in diesem Artikel angegebenen Beispiele Dateien basierend auf den Dateinamen ('-name')
suchen . Es gibt viele andere Möglichkeiten, innerhalb des Find-Befehls nach Dateien zu suchen. Stellen Sie sicher, dass Sie sich auf die Manpage des find-Befehls beziehen um sie eingehend zu erkunden.
Vielen Dank fürs Lesen und zögern Sie nicht, Feedback oder Fragen in den Kommentaren unten zu hinterlassen.