Inhaltsverzeichnis

du - Disk Usage

du (disk usage) zeigt den Speicherplatzverbrauch von Dateien und Verzeichnissen an. Es ist das wichtigste Tool, um herauszufinden, welche Dateien und Ordner viel Speicherplatz belegen und wo aufgeräumt werden sollte.

Voraussetzungen

Grundlegende Syntax

du [OPTIONEN] [VERZEICHNIS...]

Häufige Anwendungsfälle

Größe eines Verzeichnisses

# Größe des aktuellen Verzeichnisses
du -sh .
 
# Größe eines bestimmten Verzeichnisses
du -sh /var/log
 
# Nur Gesamtsumme
du -s /home/user

Unterverzeichnisse auflisten

# Größe aller direkten Unterverzeichnisse
du -h --max-depth=1
 
# Bis zu 2 Ebenen tief
du -h --max-depth=2
 
# Alternative Schreibweise
du -h -d 1

Alle Dateien anzeigen

# Alle Dateien und Verzeichnisse
du -ah /home/user
 
# Nur Dateien über 100MB
du -ah | awk '$1 ~ /[0-9]+M/ && $1+0 > 100'

Sortieren und Filtern

Nach Größe sortieren

# Top 10 größte Verzeichnisse
du -h | sort -rh | head -10
 
# Top 20 größte Dateien im aktuellen Verzeichnis
du -ah | sort -rh | head -20
 
# Größte Verzeichnisse in /var
du -h /var --max-depth=1 | sort -rh

Mit Summe

# Mit Gesamtsumme am Ende
du -shc *
 
# Mehrere Verzeichnisse mit Summe
du -shc /var/log /var/cache /tmp

Nützliche Optionen

Option Bedeutung
-h Human-readable Format (KB, MB, GB)
-s Nur Gesamtsumme (summarize)
-a Alle Dateien, nicht nur Verzeichnisse
-c Gesamtsumme am Ende anzeigen
-d N, –max-depth=N Maximale Tiefe der Anzeige
–exclude=MUSTER Dateien/Verzeichnisse ausschließen
-x Nur ein Dateisystem (nicht über Mount-Points)
–time Zeitstempel der letzten Änderung
-b Größe in Bytes
-k Größe in Kilobytes
-m Größe in Megabytes

Praktische Beispiele

Speicherfresser finden

# Größte Dateien im Home-Verzeichnis
du -ah /home/user | sort -rh | head -20
 
# Verzeichnisse über 1GB finden
du -h /var | awk '$1 ~ /G$/ && $1+0 > 1'
 
# Größe ohne Unterverzeichnisse
du -sh /var/log/*
 
# Versteckte Dateien einschließen
du -sch .[!.]* * | sort -rh

Cache und temporäre Dateien

# Cache-Verzeichnisse finden
du -h --max-depth=3 /home | grep -i cache
 
# Browser-Cache-Größe
du -sh ~/.cache/mozilla
du -sh ~/.cache/google-chrome
 
# Temporäre Dateien
du -sh /tmp /var/tmp

Log-Dateien analysieren

# Größe aller Log-Dateien
du -ch /var/log/*.log
 
# Alte Log-Dateien mit Datum
du -ah --time /var/log | sort -k2
 
# Größte Log-Datei finden
du -h /var/log | sort -rh | head -1

Mit Ausschlüssen arbeiten

# Bestimmte Dateitypen ausschließen
du -h --exclude='*.log' --max-depth=1
 
# Cache-Ordner ausschließen
du -h --exclude='cache' --exclude='tmp' /home/user
 
# Mehrere Muster ausschließen
du -h --exclude='node_modules' --exclude='.git' .

Erweiterte Anwendungen

Vergleiche und Monitoring

# Größenänderung überwachen
du -sh /var/log > before.txt
# ... Zeit vergeht ...
du -sh /var/log > after.txt
diff before.txt after.txt
 
# Kontinuierliche Überwachung
watch -n 60 'du -sh /var/log'
 
# Tägliches Wachstum protokollieren
echo "$(date): $(du -sh /data)" >> growth.log

Dateisystem-übergreifend

# Nur aktuelles Dateisystem (nicht über Mount-Points)
du -xh --max-depth=1 /
 
# Alle Dateisysteme durchsuchen
du -h --max-depth=1 /

Formatierte Ausgabe

# Als CSV exportieren
du -ab | awk '{print $2","$1}' > sizes.csv
 
# Mit Datum für Report
du -h --time --max-depth=1 /home | column -t
 
# Nur Verzeichnisse über bestimmter Größe
du -h --max-depth=1 | awk '$1 ~ /G$/ || $1+0 > 500'

Kombination mit anderen Befehlen

# Mit find: Alle Dateien über 100MB
find . -type f -size +100M -exec du -h {} \; | sort -rh
 
# Mit grep: Nur PDF-Dateien
du -ah | grep '\.pdf$' | sort -rh
 
# Mit xargs: Dateien löschen
du -ah /tmp | awk '$1+0 > 1000 {print $2}' | xargs rm -f
 
# Mit tar: Große Verzeichnisse archivieren
du -h --max-depth=1 | awk '$1 ~ /G$/' | cut -f2 | xargs tar -czf backup.tar.gz

Wichtige Hinweise

Fehlerbehebung

Siehe auch