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.
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