Remover recursivamente arquivos com tamanho inferior a 1 MB

12

Como faço para remover recursivamente arquivos com menos de 1 MB de tamanho de um diretório?

    
por Dan D. 08.02.2012 / 13:19

5 respostas

20

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.

    
por 08.02.2012 / 13:22
10

Isso deve fazer o trabalho:

$ find <directory> -type f -size -1M -delete
    
por 08.02.2012 / 13:22
2

Apenas pela variedade e um ganho de desempenho possível (provavelmente marginal):

find <directory> -type f -size -1M -print0  | xargs -0 rm
    
por 08.02.2012 / 13:25
1

Tente

find . -size -1M -exec rm {} \;

    
por 08.02.2012 / 13:24
-1

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.

    
por 08.02.2012 / 13:24

Tags