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

OptionBeschreibung
-hMenschenlesbare Größen (K, M, G)
-sNur die Gesamtsumme anzeigen
-cGesamtsumme am Ende ausgeben
--max-depth=NTiefe der Unterverzeichnisse begrenzen
--apparent-sizeTatsä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 Verzeichnisses
  • du -h --max-depth=1 VERZEICHNIS - Größe der direkten Unterverzeichnisse
  • du -h VERZEICHNIS | sort -rh | head -10 - Die 10 größten Unterverzeichnisse finden