GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die Ausgabe von du -h nach Größe sortieren?

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

Linux
  1. So listen oder sortieren Sie alle Dateien nach Größe in Linux

  2. Ausgabe nach Spalte sortieren?

  3. Wie kann ich die Größe von Dateien und Verzeichnissen in Linux sehen?

  4. So sortieren Sie eine Datei an Ort und Stelle

  5. Wie kann ich nur relative Pfade in der Find-Ausgabe erzwingen?

So verwenden Sie du Command unter Linux

Wie kann man sich merken, wie man die Umleitung verwendet?

Kann die Grub-Schriftgröße angepasst werden?

Wie kann ich die Ausgabe eines Shell-Befehls durchlaufen?

Wie kann ein Prozess in der ps-Ausgabe einen anderen Namen haben?

Wie sortiere ich die ps-Ausgabe nach der Startzeit des Prozesses?