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
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