Benutzer-Werkzeuge

Webseiten-Werkzeuge


sammlung:du

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 –exclude um unnötige Verzeichnisse zu überspringen
  • Root-Rechte nötig für vollständigen Zugriff auf alle Verzeichnisse

Fehlerbehebung

  • „Permission denied“: Nutze sudo oder filtere Fehler mit 2>/dev/null
  • Langsame Ausführung: Begrenze Tiefe mit –max-depth oder schließe große Verzeichnisse aus
  • Unterschied zu df: du summiert Dateien, df zeigt Dateisystem-Ebene (inkl. Metadaten)
  • Zu viel Output: Nutze -s für Zusammenfassung oder pipe durch head

Siehe auch

sammlung/du.txt · Zuletzt geändert: von 127.0.0.1