Find-L: Auffinden aller (Nicht-) leeren Dateien in einem Verzeichnis

by brutal-billig,

Das Erstellen einer leeren Datei unter Linux ist recht einfach. Wenn eine Datei nicht existiert können Sie einfach eine leere Datei mit dem Befehl Touch erstellen.

$ Touch DATEI
$ Ls-l-Datei

   -rw-r - r - 1 Otto Otto 0 2009-05-02 20:15 DATEI

Findet alle leeren Dateien in einem Verzeichnis kann aber auch mit einem einzigen Befehl erledigt werden. Genauso auch für nicht-leeren Dateien.

Angenommen Sie möchten alle leeren Dateien im Verzeichnis / home / Otto aufspüren, dann lautet der Befehl:

 $ Find-L / home / Otto-maxdepth 1-type f-Größe 0

Standardmäßig findet der Befehl keine symbolischen Dateien. Verwenden Sie die-L-Option um diese ebenfalls zu erhalten.

Der Ausdruck -maxdepth 1 legt die maximale Tiefe fest bei der Suche. Standardmäßig sucht der Befehl find rekursiv in das Verzeichnis. Eine maximale Tiefe von 1 bedeutet, dass Sie nur die Dateien direkt in /home/Otto suchen. Beachten Sie, dass die Tiefe 0 die Ebene der Befehlszeilenargument ist. (/home/Otto). Sie können maxdepth und mindepth zu fein Kontrolle der Tiefe verwenden wie Sie wollen.

-type f bedeutet regelmäßige Dateien. Dies ist nicht unbedingt notwendig für leere Dateien (im Gegensatz zu denen die nicht leer sind)

Größe 0 ist selbsterklärend.

Wenn Sie alle nicht-leeren Dateien im gleichen Verzeichnis finden wollen so setzen Sie einfach ein ! vor -Größe 0:

 $ Find-L / home / Otto-maxdepth 1-type f! -Größe 0

Beachten Sie, dass F-Typ notwendig. Ohne diesen Ausdruck, Unterverzeichnisse in /home/Otto wie /home/Otto/.Trash erscheint in der Ausgabe.

Meistens wollen Sie aber nicht nur Dateien finden, sondern auch diese Dateien weiterverarbeiten. Angenommen Sie möchten alle leeren Dateien in einem Verzeichnis löschen:

Aus Sicherheitsgründen sollte das find-Kommando zuerst eine Liste der Dateien finden. Anschließend werden diese Dateien dann mit dem Befehl xargs weiterverarbeitet.

 $ Find-L / home / Otto-maxdepth 1-type f-Größe 0
     / home/Otto/file1.txt
     / home/Otto/file2.txt

 $ Find-L / home / Otto-maxdepth 1-type f-Size-0-print0 | xargs -0 rm-r-f

Tags: , ,

Leave a Reply