Monat: August 2011

  • 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