Localizando diretórios dentro de uma pasta e excluindo se for menor que um determinado tamanho?

1

Qual comando posso executar para verificar os diretórios dentro de uma pasta e se o tamanho total do diretório é menor que 30MB, excluí-lo? Brinquei com o comando find tentando mover arquivos com base no tamanho, mas não funcionou corretamente.

Eu estava usando (por 1mb):

find . -size +102400k -exec mv DIRECTORY
find . -size -102400k -exec mv DIRECTORY
    
por Daniel Gomes 28.03.2012 / 11:06

2 respostas

1

Se estamos falando sobre o tamanho diretório , não tenho certeza de que find vai ajudar. du vai ter que estar envolvido em algum momento.

Aqui está algo que escrevi para encontrar diretórios próximos em 30M:

du --max-depth 1 | awk -v q='"' '$1 < 30000000 && $2 != "." {sub(/^[0-9\t ]+/, "", $0); print q $0 q}'

Você pode encadear isso em xargs rm -rf , mas eu testaria muito seriamente antes de fazer isso. Você pode querer mover os diretórios (com mv ) em vez de excluí-los diretamente.

    
por Oli 28.03.2012 / 12:24
0

O Find não conhece o tamanho total dos diretórios. Então essa abordagem não funcionará.

Você pode encontrar todos os diretórios e executar um script que use du para ver se eles são menores que 1 MB.

    
por tumbleweed 28.03.2012 / 11:47