Řešení 1:
Od GNU coreutils 7.5 vydaného v srpnu 2009, sort
umožňuje -h
parametr, který umožňuje číselné přípony typu vytvořeného du -h
:
du -hs * | sort -h
Pokud používáte řazení, které nepodporuje -h
, můžete nainstalovat GNU Coreutils. Např. na starším Mac OS X:
brew install coreutils
du -hs * | gsort -h
Od sort
manuál:
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
Řešení 2:
du | sort -nr | cut -f2- | xargs du -hs
Řešení 3:
@Douglas Leeder, ještě jedna odpověď:Seřaďte lidsky čitelný výstup z du -h pomocí jiného nástroje. Jako 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)}<>;'
Rozdělte na dva řádky, aby se vešly na displej. Můžete ji použít tímto způsobem nebo z ní udělat jednovrstvou, bude to fungovat jakkoli.
Výstup:
4.5M .
3.7M ./colors
372K ./plugin
128K ./autoload
100K ./doc
100K ./syntax
UPRAVIT: Po několika kolech golfu v PerlMonks je konečný výsledek následující:
perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'
Řešení 4:
Existuje nesmírně užitečný nástroj, který používám, nazvaný ncdu, který je navržený pro hledání těch otravných složek a souborů s vysokou spotřebou disku a jejich odstraňování. Je založen na konzoli, je rychlý a lehký a má balíčky na všech hlavních distribucích.
Řešení 5:
du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh