Comando Bash para localizar extensões de arquivo com o maior tamanho

1

Estou tentando encontrar extensões de arquivos classificadas por tamanho em um diretório e subdiretório.

Algo parecido com isto:

 76K    .pek  ./Adobe Premiere Pro Preview Files/demo.PRV/1d860051-77c9-4acb-973e-3b6b4428c54e+57631ed274ffb879a432291c 48000.pek
 18M    .cfa  ./Adobe Premiere Pro Preview Files/demo.PRV/1d860051-77c9-4acb-973e-3b6b4428c54e+57631ed274ffb879a432291c 48000.cfa
 19M          ./.git/objects/e6/66dcd00fc197154f89563f2f1aa508e2ab3b50
 21M    .mov  ./Demo 2.mov

e também, se possível, busca excluindo alguns diretórios como .git

Eu tentei este link

    
por suvozit 27.10.2015 / 17:47

3 respostas

1

O comando find no meu sistema funciona assim

 # find . -type f -ls 
... 
145890044    12192 -rw-rw-r--   1 USER GROUP        239234 Jun  7 15:03 ./QA/Audits/scripts/MYFILE.pdf 
...

find . -type f encontra todos os arquivos no diretório atual e subdiretórios

-ls lista os arquivos

Se você deseja excluir diretórios, pode usar o comutador de remoção link

O tamanho está na coluna número 7 da saída. Então, se eu quiser classificar os resultados, eu faço isso

# find . -type f -ls | sort -nr -k7 

-n number -r ordem inversa (opcional) -k7 número da coluna 7

    
por 27.10.2015 / 18:08
0

Eu posso encontrar o tamanho do arquivo

$ find . -type f -print0 | xargs -0 du | sort -rn | head -10 | cut -f2 | xargs -I{} du -sh {}

  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  117M   ./Calibre Library/Robert Martin/cc.mobi
  114M   ./Dropbox/snapshots/monthly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/weekly.tgz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz

e contagem de extensões

$ find . -type f -name "*.*" | grep -o -E "\.[^\.]+$" | sort | uniq -c | sort -rn

 353 .JPG
  53 .png
  45 .mov
  33 .DS_Store
  15 .prproj
     ...
   2 .MXF
   1 .xmp
   1 .psd
   1 .mp4
   1 .md
   1 .m4a
   1 .gitignore
   1 .gitattributes

Como combinar os dois para obter count max file size extensions ?

    
por 28.10.2015 / 04:36
0

Fora do topo da minha cabeça:

du -h --exclude=".git" <starting directory> | sort -h | grep -o "\.[:alnum:]+$"
    
por 28.10.2015 / 04:49