Jak třídíte du -sh /dir/*
podle velikosti? Četl jsem jeden web, který řekl použití | sort -n
ale to evidentně není správné. Zde je příklad, který je špatný.
[~]# 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
Přijatá odpověď:
Pokud máte GNU coreutils (běžné ve většině distribucí Linuxu), můžete použít
du -sh -- * | sort -h
-h
volba říká sort
že vstup je ve formátu čitelném pro člověka (číslo s jednotkou; na základě 1024, takže 1023 je považováno za méně než 1 kB, což náhodou odpovídá tomu, co GNU du -h
ano).
Tato funkce byla přidána do GNU Core Utilities 7.5 v srpnu 2009.
Poznámka:
Pokud používáte starší verzi Mac OSX, musíte nainstalovat coreutils pomocí
brew install coreutils
, poté použijtegsort
jako náhradasort
.Novější verze macOS (ověřeno na Mojave) podporují
sort -h
nativně.