01.01.0001
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 tux tux 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/tux aufspüren, dann lautet der Befehl:
find -l /home/tux -maxdepth 1 -type f -size 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/tux suchen. Beachten Sie, dass die Tiefe 0 die Ebene der Befehlszeilenargument ist. (/home/tux). 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 -size 0
find -l /home/tux -maxdepth 1 -type f! -size 0
Beachten Sie, dass f-Typ notwendig. Ohne diesen Ausdruck, Unterverzeichnisse in /home/tux wie /home/tux/.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/tux -maxdepth 1 -type f -size 0
/home/tux/file1.txt
/home/tux/file2.txt
find -l /home/tux -maxdepth 1 -type f -size 0 -print0 | xargs -0 rm -rf