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