GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So schließen Sie ein Verzeichnis beim Suchen von Dateien in Linux aus

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.


Linux
  1. Suchen von Dateien in der Befehlszeile (How To)

  2. So finden Sie die Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen

  3. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  4. So schließen Sie ein Verzeichnis in find aus. Befehl

  5. Linux-Befehl:Wie findet man nur Textdateien?

So zählen Sie Dateien im Verzeichnis in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

Wie man Dateien in Linux rekursiv auflistet

So zählen Sie Dateien im Verzeichnis unter Linux

So zählen Sie die Anzahl der Dateien in einem Verzeichnis in Linux

So finden Sie Ordner in Linux