
Como removo recursivamente arquivos com menos de 1 MB de um diretório?
Responder1
Isso pode ser feito com find
:
find . -type f -size -1M -exec rm {} +
Observe que isso descerá recursivamente para subdiretórios e excluirá incondicionalmente todos os arquivos menores que 1 megabyte. Tome cuidado.
Responder2
Isso deve fazer o trabalho:
$ find <directory> -type f -size -1M -delete
Responder3
Apenas por variedade e um possível ganho de desempenho (provavelmente marginal):
find <directory> -type f -size -1M -print0 | xargs -0 rm
Responder4
Você pode conferir este linkhttp://ayaz.wordpress.com/2008/02/05/bash-quickly-deleting-empty-files-in-a-directory/, tem exatamente o que você deseja.
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
Você pode percorrer todos os arquivos com um loop for e então usar du e awk para encontrar o tamanho do arquivo como no exemplo acima.