Pour trouver les 10 plus gros fichiers (linux/bash) :
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
Pour trouver les 10 plus grands annuaires :
find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
La seule différence est -type {d:f}
.
Gère les fichiers avec des espaces dans les noms, et produit des tailles de fichiers lisibles par l'homme dans la sortie. Le fichier le plus volumineux est listé en dernier. L'argument de tail est le nombre de résultats que vous voyez (ici les 10 plus grands).
Deux techniques sont utilisées pour gérer les espaces dans les noms de fichiers. La méthode find -print0 | xargs -0
utilise des délimiteurs nuls au lieu d'espaces, et la seconde xargs -I{}
utilise des nouvelles lignes au lieu d'espaces pour terminer les éléments d'entrée.
exemple :
$ 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