
¿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.