Löschen leerer Dateien unter Beibehaltung nicht leerer 4-KB-Dateien in Ubuntu

Löschen leerer Dateien unter Beibehaltung nicht leerer 4-KB-Dateien in Ubuntu

Ich habe einen Ordner, der Hunderttausende kleiner .txt-Dateien mit einer Größe von 4 KB enthält. Einige davon sind völlig leer, andere nicht. Sie haben jedoch alle die gleiche Größe von 4 KB, da dies die konfigurierte Mindestblockgröße ist. Gibt es eine Möglichkeit, die leeren Dateien massenhaft zu löschen, die nicht leeren jedoch zu behalten?

rsync --remove-sent-files -rv --min-size=4kb

entfernt alles.

Danke

Antwort1

Ich glaube, ich habe eine Teilantwort gefunden. Wenn wir annehmen, dass eine txt-Datei mit leerem Inhalt mindestens ein verstecktes Zeichen hat, dann kann jemand alle Dateien mit einer Größe unter einer bestimmten Anzahl von Bytes finden und diese löschen. Wenn wir beispielsweise alle Dateien mit einer Größe von 1 Byte löschen möchten, können wir Folgendes eingeben:

find . -type f -size -2c -delete

Antwort2

Die wirklich leeren Dateien zeigen 0 Bytes an, wenn sie mit betrachtet werden ls -l.

Sie können sie entfernen mit find(lesen Sieman find https://manpages.ubuntu.com/manpages/cosmic/en/man1/find.1.html):

find folder -maxdepth 1 -type f -name '*.txt' -size 0 -delete

verwandte Informationen