Encontre os maiores arquivos recursivamente

5

Parece haver muitas entradas sobre como usar du para encontrar recursivamente o maior diretório e arquivos ao mesmo tempo, mas nenhum sobre como encontrar recursivamente os maiores arquivos em um conjunto de diretórios.

Basicamente, estou procurando um comando para encontrar os maiores arquivos .mp3 na minha biblioteca de músicas, não o diretório que contém a maior quantidade de dados.

Estou usando o bash em um sistema OSX 10.8.

    
por nipponese 13.11.2012 / 17:09

4 respostas

6

Eu usaria:

du -a Music/ | grep "\.mp3$" | sort -n | tail -n1

fornecido Music é o seu diretório

    
por 13.11.2012 / 17:23
6

Isso deve ser feito (com o GNU find and sort):

find . -type f -iname '*.mp3' -printf "%b %p
find . -type f -iname '*.mp3' -printf "%b %p
find . -type f -iname '*.mp3' -printf "%b %p
find . -type f -iname '*.mp3' -printf "%b %p%pre%" | sort -zn | awk -v RS=\0 '{ gsub("^[0-9]+ ", "") ; print }'
" | sort -zn | tr \0 \n
" | sort -zn | awk -v RS=\0 '{ gsub("^[0-9]+ ", "") ; print }'
" | sort -zn | tr \0 \n

Se você não quiser que o tamanho do arquivo seja impresso, apenas os nomes dos arquivos:

%pre%     
por 13.11.2012 / 17:17
2

Com zsh:

ls -ld -- **/*.mp3(.DOL[1,5])

Listará os 5 maiores arquivos regulares (em termos de tamanho de arquivo, não de uso de disco que não é necessariamente o mesmo). Com o GNU ls , adicione o -U para que eles apareçam em ordem decrescente de tamanho.

Para uso do disco, isso deve ser:

zmodload zsh/stat
zdu() zstat -A REPLY +block -- $REPLY
du -- **/*.mp3(.nDO+zdu[1,5])

Claro, você pode adaptar isso a outras métricas associadas ao arquivo, como a duração do MP3 em segundos:

mp3_duration() REPLY=$(exiftool -p '$Duration#' - < $REPLY)
print -rl -- **/*.mp3(.nDO+mp3_duration[1,5])
    
por 13.11.2012 / 23:35
1

Minha suposição inicial estava errada, havia uma resposta existente para essa pergunta, detalhada aqui :

find . -type f -print0 | xargs -0 du -s | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Ainda dei a vocês os pontos.

    
por 14.11.2012 / 16:00