Isso pode ser feito com find
:
find . -type f -size -1M -exec rm {} +
Observe que isso irá recursivamente descer em subdiretórios e excluirá incondicionalmente todos os arquivos menores que 1 megabyte. Tenha cuidado.
Como faço para remover recursivamente arquivos com menos de 1 MB de tamanho de um diretório?
Isso pode ser feito com find
:
find . -type f -size -1M -exec rm {} +
Observe que isso irá recursivamente descer em subdiretórios e excluirá incondicionalmente todos os arquivos menores que 1 megabyte. Tenha cuidado.
Isso deve fazer o trabalho:
$ find <directory> -type f -size -1M -delete
Apenas pela variedade e um ganho de desempenho possível (provavelmente marginal):
find <directory> -type f -size -1M -print0 | xargs -0 rm
Tente
find . -size -1M -exec rm {} \;
Você pode conferir este link link , tem exatamente o que você quer.
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 usar du e awk para encontrar o tamanho do arquivo, como no exemplo acima.
Tags bash