Para encontrar os 10 maiores ficheiros (linux/bash):
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
Para encontrar os 10 maiores directó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 ficheiros com espaços nos nomes, e produz tamanhos de ficheiros legíveis por humanos na saída. O maior ficheiro listado por último. O argumento a seguir é o número de resultados que se vê (aqui os 10 maiores).
Há duas técnicas utilizadas para manusear espaços nos nomes dos ficheiros. A find -print0 | xargs -0
utiliza delimitadores nulos em vez de espaços, e a segunda xargs -I{}
utiliza novas linhas em vez de espaços para terminar os 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