Eliminar recursivamente archivos cuyo tamaño sea inferior a 1 MB

Eliminar recursivamente archivos cuyo tamaño sea inferior a 1 MB

¿Cómo elimino recursivamente archivos de menos de 1 MB de un directorio?

Respuesta1

Esto se puede hacer con find:

find . -type f -size -1M -exec rm {} +

Tenga en cuenta que esto descenderá recursivamente a subdirectorios y eliminará incondicionalmente todos los archivos de menos de 1 megabyte. Ten cuidado.

Respuesta2

Esto debería hacer el trabajo:

$ find <directory> -type f -size -1M -delete

Respuesta3

Sólo por variedad y una posible (probablemente marginal) ganancia de rendimiento:

find <directory> -type f -size -1M -print0  | xargs -0 rm

Respuesta4

Puedes consultar este enlacehttp://ayaz.wordpress.com/2008/02/05/bash-quickly-deleting-empty-files-in-a-directory/, tiene exactamente lo que quieres.

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

Puede recorrer todos los archivos con un bucle for y luego usar du y awk para encontrar el tamaño del archivo como en el ejemplo anterior.

información relacionada