Mostra o tamanho do arquivo por tipo no Linux?

2

Estou tentando descobrir o tamanho total de todos os arquivos em um diretório com uma extensão específica.

Eu faço algum backup externo via rsync, mas devido à largura de banda limitada e espaço em disco no outro lado eu não posso fazer tudo, então eu gostaria de descobrir, por exemplo, quanto espaço em disco arquivos MP3 ocupam então Eu posso decidir se devo remover a extensão mp3 da lista atual de padrões excluídos do rsync.

Não é tão simples quanto fazer um 'du -sh' no diretório My Music, pois há alguns outros tipos de arquivos.

Obrigado!

    
por gkhewitt 26.12.2009 / 12:37

4 respostas

7

Você pode usar du:

find Music/ -type f -name "*.mp3" -exec du -shc {} + | tail -1 | awk '{print $1}'
Exemplo de saída

:

980M
    
por 27.12.2009 / 01:06
1

Eu apenas tentei o seguinte

find Music/ -name '*.mp3' -exec ls -l {} \; | awk '{ SUM += $5} END { print SUM/1024/1024 }'

E recebi a resposta correta em megabytes (1024 x 1024)

    
por 26.12.2009 / 13:01
0
find Music/ -iname "*.mp3" -type f -exec stat -c "%s" {} \; | awk '{SUM+=$0} END {print SUM/1024/1024}'

A resposta correta também, exatamente da mesma forma que a solução da pavium, pode ser um pouco mais confiável.

    
por 27.12.2009 / 00:54
0

OK, esta é a melhor maneira que vi, que parece executar ordens de magnitude mais rápido do que aquelas que contêm awk:

find "My Music/" -type f -name "*.mp3" -print0 | du -hc --files0-from=- | tail -n 1

saída:

1.3G Total

    
por 06.02.2015 / 01:16

Tags