Per elencare i file ovunque sotto /tmp
, ordinati per dimensione:
find /tmp -type f -exec du -k {} + | sort -k1n -k2
Per elencare i file e gli alberi delle directory immediatamente sotto /tmp
, ordinati per dimensione:
du -k /tmp/..?* /tmp/.[!.]* /tmp* 2>/dev/null | sort -k1n -k2
Per elencare tutti i file e gli alberi delle directory ovunque /tmp
, ordinati per dimensione:
du -ak /tmp | sort -k1n -k2
(Un esempio per illustrare la differenza tra i tre comandi: se c'è un file /tmp/dir/file
, il primo elenco di comandi /tmp/dir/file
, il secondo elenco /tmp/dir
e il terzo elenco entrambi).
Tutti i comandi sopra mostrano le dimensioni in kilobyte. Mentre GNU du può produrre dimensioni "leggibili dall'uomo" (con moltiplicatori k, M, G, ecc.), Ordinarle è un'altra cosa. Coreutils GNU abbastanza recenti (≥7,4) possono farlo: basta sostituire du -k
con du -h
e sort -k1n -k2
con sort -k1h -k2
. Altrimenti, ecco uno script awk grezzo da convertire in dimensioni suffissate (arrotondamento per difetto); sort
inserisci semplicemente l' output sopra.
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}'