Comment trier du -sh /dir/*
par taille? J'ai lu un site qui disait d'utiliser | sort -n
mais ce n'est évidemment pas juste. Voici un exemple qui est faux.
[~]# du -sh /var/* | sort -n
0 /var/mail
1.2M /var/www
1.8M /var/tmp
1.9G /var/named
2.9M /var/run
4.1G /var/log
8.0K /var/account
8.0K /var/crash
8.0K /var/cvs
8.0K /var/games
8.0K /var/local
8.0K /var/nis
8.0K /var/opt
8.0K /var/preserve
8.0K /var/racoon
12K /var/aquota.user
12K /var/portsentry
16K /var/ftp
16K /var/quota.user
20K /var/yp
24K /var/db
28K /var/empty
32K /var/lock
84K /var/profiles
224M /var/netenberg
235M /var/cpanel
245M /var/cache
620M /var/lib
748K /var/spool
Réponse acceptée :
Si vous avez GNU coreutils (courant dans la plupart des distributions Linux), vous pouvez utiliser
du -sh -- * | sort -h
Le -h
l'option indique sort
que l'entrée est au format lisible par l'homme (nombre avec unité ; basé sur 1024 de sorte que 1023 est considéré comme inférieur à 1K, ce qui correspond à ce que GNU du -h
fait).
Cette fonctionnalité a été ajoutée à GNU Core Utilities 7.5 en août 2009.
Remarque :
Si vous utilisez une ancienne version de Mac OSX, vous devez installer coreutils avec
brew install coreutils
, puis utilisezgsort
en remplacement direct desort
.Les nouvelles versions de macOS (vérifiées sur Mojave) prennent en charge
sort -h
nativement.