Der Befehl ls -l zeigt für Verzeichnisse fast immer 4096 Bytes an. Das ist der Speicherplatz für die Metadaten des Verzeichnisses, nicht für dessen Inhalt. Um die tatsächliche Größe eines Verzeichnisses zu ermitteln, verwendest du den Befehl du (Disk Usage).
Syntax
du [OPTIONEN] [VERZEICHNIS]...
Ohne Pfadangabe zeigt du die Speichernutzung des aktuellen Verzeichnisses.
Die wichtigsten Optionen
| Option | Beschreibung |
|---|---|
-h | Menschenlesbare Größen (K, M, G) |
-s | Nur die Gesamtsumme anzeigen |
-c | Gesamtsumme am Ende ausgeben |
--max-depth=N | Tiefe der Unterverzeichnisse begrenzen |
--apparent-size | Tatsächliche Dateigröße statt Blockgröße |
Gesamtgröße eines Verzeichnisses anzeigen
Mit -s (summarize) und -h (human-readable) erhältst du die Gesamtgröße in lesbarem Format:
du -sh /var
Ausgabe:
85G /var
Für Verzeichnisse mit Root-Berechtigungen benötigst du sudo:
sudo du -sh /var
Größe der Unterverzeichnisse anzeigen
Um die Speichernutzung der direkten Unterverzeichnisse zu sehen, hast du zwei Möglichkeiten.
Mit Wildcard:
sudo du -shc /var/*
Ausgabe:
24K /var/db
4.0K /var/empty
77G /var/lib
4.0K /var/local
3.3G /var/log
5.0G /var/cache
28K /var/tmp
85G gesamt
Die Option -c fügt eine Gesamtsumme am Ende hinzu.
Mit –max-depth:
sudo du -h --max-depth=1 /var
Der Unterschied: --max-depth zeigt auch versteckte Verzeichnisse (die mit . beginnen), während die Wildcard * diese überspringt.
Blockgröße vs. tatsächliche Größe
Standardmäßig zeigt du den belegten Speicherplatz auf der Festplatte. Das entspricht der Blockgröße des Dateisystems und kann von der tatsächlichen Dateigröße abweichen.
Mit --apparent-size siehst du die tatsächliche Datenmenge:
sudo du -sh --apparent-size /var
Das ist relevant, wenn du Daten per SCP, Rsync oder SFTP überträgst. Die übertragene Datenmenge entspricht der apparent size, nicht der Blockgröße.
Die größten Verzeichnisse finden
Kombiniere du mit sort und head, um die größten Speicherfresser zu finden:
sudo du -h /var | sort -rh | head -5
Ausgabe:
85G /var/
77G /var/lib
75G /var/lib/libvirt/images
75G /var/lib/libvirt
5.0G /var/cache/pacman/pkg
Die Option -r sortiert absteigend, -h sortiert nach menschenlesbaren Größen (sodass 1G vor 500M kommt).
Zusammenfassung
Der Befehl du zeigt den tatsächlichen Speicherverbrauch von Verzeichnissen an. Die wichtigsten Kombinationen:
du -sh VERZEICHNIS- Gesamtgröße eines Verzeichnissesdu -h --max-depth=1 VERZEICHNIS- Größe der direkten Unterverzeichnissedu -h VERZEICHNIS | sort -rh | head -10- Die 10 größten Unterverzeichnisse finden