Sortierte Ausgabe von du -h (Kombinieren von du -h und sort)

Eine Ergänzung zu dem Artikel “Unter Linux eine Liste der größten Dateien ausgeben

Ich habe schon öfters nach einer Möglichkeit gesucht, die Ausgabe des Linux-Befehls du mit dem Parameter “-h” (für human-readable) sortiert nach der Größe ausgeben zu lassen. Sortieren ohne die Option “-h” ist kein Problem. Dann wird die Ausgabe von du standardmäßig nach KB sortiert.

du /var --max-depth=1 |sort -nr
686528 /var
575840 /var/lib
62848 /var/log
46628 /var/cache
872 /var/adm
156 /var/spool
128 /var/run
28 /var/lock
8 /var/tmp
4 /var/X11R6
4 /var/opt
4 /var/games
4 /var/crash

Mit dem Parameter –block-size=1M oder  –block-size=1G kann man noch die Einheit der Größenangabe festlegen.

du /var --block-size=1M --max-depth=1 |sort -nr

6729 /var
5237 /var/lib
1021 /var/cache
412 /var/log
54 /var/www
7 /var/backups
1 /var/tmp
1 /var/spool
1 /var/opt
1 /var/mail
1 /var/local

Was aber immer noch fehlt ist die sortierte Ausgabe mit flexiblen, je nach Ordnergröße angepassten, “Human Readable (wie KB MB GB)” Größenangaben. Dies lässt sich durch eine Kombination von du sort cut xargs und wieder du erreichen.

du  /var/ --max-depth=1 | sort -nr | cut -f2 | xargs -n 1 du -hs

6,6G    /var/
5,2G    /var/lib
1023M   /var/cache
413M    /var/log
54M     /var/www
6,5M    /var/backups
72K     /var/spool
4,0K    /var/tmp
4,0K    /var/opt
4,0K    /var/mail
4,0K    /var/local

Beteilige dich an der Unterhaltung

1 Kommentar

  1. Bei Leerzeichen im Verzeichnisnamen gibt es Probleme. Ok, Leerzeichen sind ein Frevel, aber bei manchen Usern kommen sie halt vor.

    Probieren sie das mal hier:
    du -h –max-depth=1 /var/ | sort -h -r

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert