Pour trouver les 10 plus grands 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 répertoires :
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 dont les noms contiennent des espaces et produit des fichiers de taille lisible par l'utilisateur. Le plus grand fichier est listé en dernier. L'argument à faire suivre 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 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 en 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