
Wie entferne ich rekursiv Dateien mit einer Größe von weniger als 1 MB aus einem Verzeichnis?
Antwort1
Dies kann folgendermaßen erfolgen find
:
find . -type f -size -1M -exec rm {} +
Beachten Sie, dass hierdurch rekursiv in Unterverzeichnisse gewechselt wird und alle Dateien, die kleiner als 1 Megabyte sind, unbedingt gelöscht werden. Seien Sie vorsichtig.
Antwort2
Das hier sollte funktionieren:
$ find <directory> -type f -size -1M -delete
Antwort3
Nur zur Abwechslung und für eine mögliche (wahrscheinlich geringe) Leistungssteigerung:
find <directory> -type f -size -1M -print0 | xargs -0 rm
Antwort4
Sie können diesen Link überprüfenhttp://ayaz.wordpress.com/2008/02/05/bash-quickly-deleting-empty-files-in-a-directory/, es hat genau das, was Sie wollen.
for file in *;
do
file_size=$(du $file | awk '{print $1}');
if [ $file_size == 0 ]; then
echo "Deleting empty file $file with file size $file_size!";
echo "rm -f $file";
fi;
done
Sie können mit einer For-Schleife alle Dateien durchlaufen und dann wie im obigen Beispiel „du“ und „awk“ verwenden, um die Dateigröße zu ermitteln.