Solution 1 :
Depuis GNU coreutils 7.5 publié en août 2009, sort
permet un -h
paramètre, qui autorise les suffixes numériques du type produit par du -h
:
du -hs * | sort -h
Si vous utilisez un tri qui ne prend pas en charge -h
, vous pouvez installer GNU Coreutils. Par exemple. sur un ancien Mac OS X :
brew install coreutils
du -hs * | gsort -h
À partir de sort
manuel :
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
Solution 2 :
du | sort -nr | cut -f2- | xargs du -hs
Solution 3 :
@Douglas Leeder, une autre réponse :triez la sortie lisible par l'homme de du -h à l'aide d'un autre outil. Comme 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)}<>;'
Diviser en deux lignes pour s'adapter à l'affichage. Vous pouvez l'utiliser de cette façon ou en faire un one-liner, cela fonctionnera dans les deux sens.
Sortie :
4.5M .
3.7M ./colors
372K ./plugin
128K ./autoload
100K ./doc
100K ./syntax
MODIF : Après quelques parties de golf chez PerlMonks, le résultat final est le suivant :
perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'
Solution 4 :
Il existe un outil extrêmement utile que j'utilise, appelé ncdu, conçu pour rechercher ces dossiers et fichiers embêtants à forte utilisation du disque et les supprimer. Il est basé sur console, rapide et léger, et propose des packages sur toutes les principales distributions.
Solution 5 :
du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh