sammlung:du
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
- Zugriff auf die Linux-Kommandozeile
- Grundkenntnisse in Bash-Kommandos
- Leserechte für die zu prüfenden Verzeichnisse
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
- du zeigt tatsächliche Dateigrößen, df zeigt Dateisystem-Auslastung
- Sparse Files (dünn besetzte Dateien) werden mit ihrer logischen Größe angezeigt
- Hard-Links werden mehrfach gezählt (jeder Link zählt separat)
- Bei großen Verzeichnissen kann du lange dauern
- Nutze
–excludeum unnötige Verzeichnisse zu überspringen - Root-Rechte nötig für vollständigen Zugriff auf alle Verzeichnisse
Fehlerbehebung
- „Permission denied“: Nutze
sudooder filtere Fehler mit2>/dev/null - Langsame Ausführung: Begrenze Tiefe mit
–max-depthoder schließe große Verzeichnisse aus - Unterschied zu df: du summiert Dateien, df zeigt Dateisystem-Ebene (inkl. Metadaten)
- Zu viel Output: Nutze
-sfür Zusammenfassung oder pipe durchhead
Siehe auch
sammlung/du.txt · Zuletzt geändert: von 127.0.0.1
