Kurzfassung: 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. Unverzichtbar für Speicherverwaltung und Kapazitätsoptimierung.
du analysiert rekursiv Verzeichnisstrukturen und summiert den Speicherverbrauch von Dateien und Unterverzeichnissen. Im Gegensatz zu df zeigt es detailliert, wo genau Speicher verbraucht wird.
du [OPTIONEN] [VERZEICHNIS...]
# Größe des aktuellen Verzeichnisses du -sh . # Größe eines bestimmten Verzeichnisses du -sh /var/log # Nur Gesamtsumme du -s /home/user
# 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 und Verzeichnisse du -ah /home/user # Nur Dateien über 100MB du -ah | awk '$1 ~ /[0-9]+M/ && $1+0 > 100'
# 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 Gesamtsumme am Ende du -shc * # Mehrere Verzeichnisse mit Summe du -shc /var/log /var/cache /tmp
| 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 |
# 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-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
# 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
# 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' .
# 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
# Nur aktuelles Dateisystem (nicht über Mount-Points) du -xh --max-depth=1 / # Alle Dateisysteme durchsuchen du -h --max-depth=1 /
# 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'
# 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
–exclude um unnötige Verzeichnisse zu überspringensudo oder filtere Fehler mit 2>/dev/null–max-depth oder schließe große Verzeichnisse aus-s für Zusammenfassung oder pipe durch head