Remova recursivamente arquivos com tamanho inferior a 1 MB

Remova recursivamente arquivos com tamanho inferior a 1 MB

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.

informação relacionada