Festplattennutzung: Speicherplatzfresser finden mit 'du'
veröffentlicht am 29.10.2020 mit 575 Worten - Lesezeit: 3 Minute(n) in * LINUX *
Inhaltsverzeichnis
Es wird Winter - in der dunklen und in unseren Breiten ungemütlich naßkalten Jahreszeit verbringe ich immer mal wieder Zeit mit dem Versuch, etwas Ordnung überall dort reinzubringen, wo sich im Rest des Jahres irgendwelche “Altlasten” ansammeln, sei es in der analogen, aber auch in der digitalen Welt. Um letztere soll es hier gehen:
Wo stecken die größten Speicherplatzfresser auf meiner Festplatte?
Der Befehl du
Der Linux-Befehl du
(Disk Usage) ist ein Standard-Unix/Linux-Befehl, der verwendet wird, um die Informationen über die Plattenbelegung durch Dateien und Verzeichnisse auf einem Rechner zu ermitteln.
$ du [Optionen] [Startverzeichnis]
Der Befehl du
hat viele Parameteroptionen, mit denen die Ergebnisse in vielen Formaten abgerufen werden können. Der du
-Befehl zeigt die Dateien und Verzeichnisgrößen auch rekursiv an.
Die für unsere Zwecke hier benötigten Optionen sind:
-h
,--human-readable
- Größen in menschenlesbarem Format ausgeben (z. B. 1K 234M 2G)-d
,--max-depth=N
- Summe für ein Verzeichnis ausgeben (oder einer Datei, mit--all
) nur, wenn es N oder weniger Ebenen unterhalb des Befehlszeilenarguments liegt
Beispiel:
$ du -h --max-depth 1 /home/{benutzername}
Wie üblich findet man die weiteren zur Verfügung stehenden Optionen mit dem Befehl man du
.
Die Ausgabe nachbearbeiten
Ausgabe umleiten mit |
Pipe
Der Pipe-Operator (Pipe = Kurzform für Pipeline) leitet die Ausgabe eines Befehls direkt an einen anderen Befehl weiter (anstatt ins Terminal). Damit kann der zweite Befehl das Ergebnis bzw. die Ausgabe des ersten Befehls weiterverarbeiten. In der Praxis sieht das dann so aus:
$ Befehl1 | Befehl2
Die Ausgaben, die Befehl1
normalerweise ins Terminal schreiben würde, werden dort nicht sichtbar, sondern stattdessen direkt in Befehl2
“hineingefüttert”, der damit weiterarbeitet und dann sein Ergebnis ins Terminal schreibt.
Hier für unsere Zwecke ist dieser zweite Befehl …
Der Befehl sort
Der Sortierbefehl ist ein Befehlszeilenprogramm zum Sortieren von Zeilen einer Textdatei. Er unterstützt das Sortieren alphabetisch, in umgekehrter Reihenfolge, nach Nummer, nach Monat und kann auch Dubletten entfernen.
Der Befehl wird in dieser Art verwendet:
$ sort [Optionen] [Datei]
Wird keine Datei angegeben, so wird die Standardeingabe des Terminals, in der Regel also die Tastatur, als Eingabe gelesen.
Wir machen das hier noch anders: Mittels Pipe |
wird die Ausgabe von du
als Eingabe in sort
hineingeschickt, dessen Ausgabe erscheint dann wiederum im Terminal.
Die für unsere Zwecke hier benötigten Sortieroptionen sind:
-r
,--reverse
- das Ergebnis der Vergleiche umkehren: damit wird die Ausgabe so sortiert, daß die Verzeichnisse mit den größten Datenvolumen oben stehen-h
,--human-numeric-sort
- vergleicht menschenlesbare Zahlen (z. B. 2K 1G). Das ist deswegen wichtig, weil wir den Befehldu
ja so eingestellt hatten, daß er den Speicherplatzverbrauch in dieser Art formatiert ausgibt. Und so mußsort
das erkennen, um richtig sortieren zu können.
$ sort -h -r
Wie üblich findet man die weiteren zur Verfügung stehenden Optionen mit dem Befehl man sort
.
Zusammenfassung
Mein “Befehl für die Praxis”, der mir den schnellsten und für meine Zwecke besten Überblick gibt, sieht also vollständig so aus:
$ du -h --max-depth 1 /home/{benutzername} | sort -h -r
und liefert etwas in dieser Form:
11T /home/{benutzername}
8,6T /home/{benutzername}/NAS_Video
273G /home/{benutzername}/NAS_Audio
134G /home/{benutzername}/Videos
126G /home/{benutzername}/Navigation
100G /home/{benutzername}/Daten
78G /home/{benutzername}/QMapShack
27G /home/{benutzername}/Musik
19G /home/{benutzername}/Downloads
1,1G /home/{benutzername}/Audioarchiv
957M /home/{benutzername}/bin
740M /home/{benutzername}/Schreibtisch
571M /home/{benutzername}/PDF
569M /home/{benutzername}/Dokumente
351M /home/{benutzername}/.mozilla
225M /home/{benutzername}/Bilder
52K /home/{benutzername}/Simulationen
36K /home/{benutzername}/.avidemux6
20K /home/{benutzername}/Karten
8,0K /home/{benutzername}/.Scilab
(...)
So werden - ausgehend vom /home
-Verzeichnis des aktiven Benutzers - erstmal alle Unterverzeichnisse der 1. Ebene mit ihrem jeweiligen Speicherplatzverbrauch gelistet - schön in absteigender Größe.
Und nun: Los geht’s mit dem “Ausmisten” … 😀
weitere Artikel
- Linux-Befehle: Dateiliste
- Wetterprognosen - schnell und resourcenschonend
- Linux-Tipp: Rechner umbenennen - Hostname ändern
- WLAN-Scanner für Linux
- Warum ist Windows so 'fett'?