Rekursives Entfernen von Dateien mit einer Größe von weniger als 1 MB

Rekursives Entfernen von Dateien mit einer Größe von weniger als 1 MB

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.

verwandte Informationen