Per trovare i 10 file più grandi (linux/bash):
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
Per trovare le 10 directory più grandi:
find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
L'unica differenza è -type {d:f}
.
gestisce i file con spazi nei nomi, e produce in output dimensioni di file leggibili dall'uomo. Il file più grande viene elencato per ultimo. L'argomento di tail è il numero di risultati che vedete (qui i 10 più grandi).
Ci sono due tecniche usate per gestire gli spazi nei nomi dei file. La find -print0 | xargs -0
usa delimitatori null al posto degli spazi, e la seconda xargs -I{}
usa newline al posto degli spazi per terminare gli elementi di input.
esempio:
$ 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