Solución 1:
A partir de GNU coreutils 7.5 publicado en agosto de 2009, sort
permite un -h
parámetro, que permite sufijos numéricos del tipo producido por du -h
:
du -hs * | sort -h
Si está utilizando una ordenación que no admite -h
, puede instalar GNU Coreutils. P.ej. en un Mac OS X anterior:
brew install coreutils
du -hs * | gsort -h
Desde sort
manuales:
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
Solución 2:
du | sort -nr | cut -f2- | xargs du -hs
Solución 3:
@Douglas Leeder, una respuesta más:ordene la salida legible por humanos de du -h usando otra herramienta. ¡Como Perl!
du -h | perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/;
return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'
Dividir en dos líneas para adaptarse a la pantalla. Puede usarlo de esta manera o convertirlo en una sola línea, funcionará de cualquier manera.
Salida:
4.5M .
3.7M ./colors
372K ./plugin
128K ./autoload
100K ./doc
100K ./syntax
EDITAR: Después de algunas rondas de golf en PerlMonks, el resultado final es el siguiente:
perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'
Solución 4:
Hay una herramienta inmensamente útil que utilizo llamada ncdu que está diseñada para encontrar esas molestas carpetas y archivos de alto uso de disco y eliminarlos. Está basado en consola, es rápido y liviano, y tiene paquetes en todas las distribuciones principales.
Solución 5:
du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh