Oft möchte man ja wissen, in welchem Ordner Dateileichen liegen oder in welchem Ordner besonders viel Speicherplatz verbraucht wird. So habe ich soeben mal wieder auf dem Server nachgesehen, welches meiner Verzeichnisse vielleicht mal überarbeitet gehört. Bisher habe ich die einzelnen Ordner mittels du --si --summarize angesehen, wobei das bei vielen Ordner ziemlich viel Arbeit ist. Wie immer kann man sich das unter Linux vereinfachen.

Mit der folgenden Zeile:

1
du . -h --max-depth=1|sort -h

kann man sich im aktuellen Verzeichnis die erste Ebene inklusive des verbrauchten Speicherplatzes ausgeben lassen, wobei die Größe der jeweiligen Unterordner berücksichtigt wird.

Notiz: Das Flag -h gibt es bei sort erst ab GNU coreutils 7.5 (Release war im August 2009) und erlaubt einen Vergleich menschenlesbaren Größen (wie 2K oder 1G).

Meine bisherige Lösung funktioniert nur manchmal, aber liste ich mal der Vollständgkeit halber mit auf:

1
find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn

Wenn man nun auf der Suche nach Verbrauchern von Speicherplatz ist, lohnt es sich oft auch, sich das in einer einfachen Oberfläche mit der Möglichkeit von Löschen etc. anzusehen. Hierfür nutze ich das Tool “ gdu ”, welches das wunderbar erlaubt.

Nach der Installation  habe ich zunächst konfiguriert, dass ich Löschen parallel im Hintergrund machen möchte. Dazu schreibe ich die Config in mein gdu config file wodurch diese auch für das nächste Mal direkt vorhanden ist:

1
2
3
mkdir -p $HOME/.config/gdu/
echo "delete-in-background: true" >> $HOME/.config/gdu/gdu.yaml
echo "delete-in-parallel: true" >> $HOME/.config/gdu/gdu.yaml

Anschließend rufe ich das tool auf (z.b. via /usr/bin/gdu) und sortiere nach Größe (s). Nun kann ich mittels der Pfeiltasten durch die verzeichnisse navigieren und via d einzelne Verzeichnisse oder Dateien löschen. Da dies dann im Hintergrund passiert kann ich direkt weitersehen, jedoch sollte man das tool erst beenden, wenn am unteren Bildschirmrand dann alle Prozesse abgearbeitet sind.