Para encontrar os 10 maiores arquivos (linux / bash):
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
Para encontrar os 10 maiores diretórios:
find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
A única diferença é -type {d:f}
.
Manipula arquivos com espaços nos nomes e produz tamanhos de arquivos legíveis por humanos na saída. Maior arquivo listado por último. O argumento a seguir é o número de resultados que você vê (aqui os 10 maiores).
Existem duas técnicas usadas para manipular espaços em nomes de arquivos. O find -print0 | xargs -0
usa delimitadores nulos em vez de espaços e o segundo xargs -I{}
usa novas linhas em vez de espaços para finalizar itens de entrada.
exemplo:
$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
76M ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
76M ./tmp/projects/onthisday/onthisday.tar.gz
114M ./Dropbox/snapshots/weekly.tgz
114M ./Dropbox/snapshots/daily.tgz
114M ./Dropbox/snapshots/monthly.tgz
117M ./Calibre Library/Robert Martin/cc.mobi
159M ./.local/share/Trash/files/funky chicken.mpg
346M ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi