Como excluo todos os arquivos menores que um determinado tamanho em todas as subpastas?

72

Eu tenho uma pasta com muitas subpastas contendo pequenos arquivos tif (menos de 160kb) que foram mesclados em arquivos pdf maiores, junto com alguns arquivos tif grandes de várias páginas.

Desejo excluir todos os arquivos tif pequenos sem excluir os arquivos maiores (tif ou pdf) e manter a estrutura do diretório. Como faço para isso no Linux usando a linha de comando?

    
por To Do 12.09.2013 / 11:57

1 resposta

125
find . -name "*.tif" -size -160k -delete

Execute o comando sem -delete primeiro para verificar se os arquivos corretos foram encontrados.

Observe o - antes de 160k . Apenas 160k significa exatamente 160 kilobytes. -160k significa menor que 160 kilobytes. +160k significa maior que 160 kilobytes.

Se você quiser filtrar o tamanho em bytes (como em 160 bytes em vez de 160 kilobytes), então você deve escrevê-lo assim: 160c . Se você acabou de escrever 160 , ele será interpretado como 160 * 512 bytes. Este é um requisito estranho por POSIX. Leia aqui para mais detalhes: link

    
por 12.09.2013 / 12:04