Pour répertorier les fichiers n'importe où sous /tmp
, triés par taille:
find /tmp -type f -exec du -k {} + | sort -k1n -k2
Pour répertorier les fichiers et les arborescences de répertoires immédiatement sous /tmp
, triés par taille:
du -k /tmp/..?* /tmp/.[!.]* /tmp* 2>/dev/null | sort -k1n -k2
Pour répertorier tous les fichiers et arborescences de répertoires n'importe où sous /tmp
, triés par taille:
du -ak /tmp | sort -k1n -k2
(Un exemple pour illustrer la différence entre les trois commandes: s'il y a un fichier /tmp/dir/file
, la première liste de commandes /tmp/dir/file
, la deuxième liste /tmp/dir
et la troisième liste les deux.)
Toutes les commandes ci-dessus affichent les tailles en kilo-octets. Alors que GNU du peut produire des tailles «lisibles par l'homme» (avec des multiplicateurs k, M, G, etc.), leur tri est une autre affaire. Des coreutils GNU assez récents (≥7.4) peuvent le faire: remplacez simplement du -k
par du -h
et sort -k1n -k2
par sort -k1h -k2
. Sinon, voici un script awk grossier à convertir en tailles suffixées (arrondi vers le bas); il suffit de diriger la sort
sortie ci-dessus.
awk -vFS='\t' -vOFS='\t' '{
if ($1) $1 = substr($1,1,(length($1)-1)%3+1)
substr("kMGTPEZY",(length($1)-1)/3+1,1);
print}'