Lösung 1:
Ab GNU Coreutils 7.5, veröffentlicht im August 2009, sort
erlaubt einen -h
-Parameter, der numerische Suffixe der Art zulässt, die von du -h
erzeugt werden :
du -hs * | sort -h
Wenn Sie eine Sortierung verwenden, die -h
nicht unterstützt , können Sie GNU Coreutils installieren. Z.B. auf einem älteren Mac OS X:
brew install coreutils
du -hs * | gsort -h
Ab sort
Handbuch:
-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
Lösung 2:
du | sort -nr | cut -f2- | xargs du -hs
Lösung 3:
@Douglas Leeder, noch eine Antwort:Sortieren Sie die menschenlesbare Ausgabe von du -h mit einem anderen Tool. Wie 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)}<>;'
Teilen Sie es in zwei Zeilen auf, um es an die Anzeige anzupassen. Sie können es auf diese Weise verwenden oder es zu einem Einzeiler machen, es funktioniert so oder so.
Ausgabe:
4.5M .
3.7M ./colors
372K ./plugin
128K ./autoload
100K ./doc
100K ./syntax
BEARBEITEN: Nach ein paar Golfrunden drüben bei PerlMonks ist das Endergebnis das Folgende:
perl -e'%h=map{/.\s/;99**(ord$&&7)-$`,$_}`du -h`;[email protected]{sort%h}'
Lösung 4:
Es gibt ein äußerst nützliches Tool namens ncdu, das ich verwende, um diese lästigen Ordner und Dateien mit hoher Festplattennutzung zu finden und zu entfernen. Es ist konsolenbasiert, schnell und leicht und hat Pakete für alle wichtigen Distributionen.
Lösung 5:
du -k * | sort -nr | cut -f2 | xargs -d '\n' du -sh