Festplatte voll? Oft sind es große Log-Dateien, vergessene Backups oder VM-Images, die den Speicher fressen. Mit find und du findest du die Übeltäter in Sekunden.
Mit find nach großen Dateien suchen
Der find-Befehl durchsucht Verzeichnisse nach bestimmten Kriterien. Mit der Option -size filterst du nach Dateigröße.
Dateien über 100 MB im aktuellen Verzeichnis finden:
find . -xdev -type f -size +100M
Die Optionen im Detail:
.– Startverzeichnis (ersetze durch beliebigen Pfad)-xdev– Bleibt auf dem aktuellen Dateisystem (überspringt gemountete Laufwerke)-type f– Nur Dateien, keine Verzeichnisse-size +100M– Größer als 100 Megabyte
Die Ausgabe zeigt nur die Pfade:
/var/lib/libvirt/images/centos-7-desktop_default.img
/var/lib/libvirt/images/bionic64_default.img
/var/lib/libvirt/images/win10.qcow2
Ergebnisse nach Größe sortieren
Die Pfade allein sagen wenig. Kombiniere find mit ls und sort, um die Größen zu sehen und nach Größe zu sortieren:
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r
Beispielausgabe:
-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2
-rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img
-rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop.img
-rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04.img
Was passiert hier:
xargs ls -lh– Führtls -lhauf jeder gefundenen Datei aussort -k5,5 -h -r– Sortiert nach der fünften Spalte (Größe), menschenlesbar (-h), absteigend (-r)
Nur die Top 10 anzeigen
Bei vielen Treffern begrenzt head die Ausgabe:
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head
Weitere Filteroptionen
find kann mehr als nur nach Größe filtern:
# Dateien über 500 MB, älter als 30 Tage
find /var -xdev -type f -size +500M -mtime +30
# Große Log-Dateien
find /var/log -xdev -type f -size +50M -name "*.log"
# Große Dateien eines bestimmten Benutzers
find /home -xdev -type f -size +100M -user max
Mit du die größten Verzeichnisse finden
Der du-Befehl (disk usage) zeigt den Speicherverbrauch von Verzeichnissen. Das ist nützlich, wenn du nicht einzelne Dateien suchst, sondern wissen willst, welche Ordner am meisten Platz belegen.
Die fünf größten Einträge im aktuellen Verzeichnis:
du -ahx . | sort -rh | head -5
Beispielausgabe:
55G .
24G ./.vagrant.d/boxes
24G ./.vagrant.d
13G ./Projekte
5.2G ./.minikube
Die Optionen:
-a– Zeigt Dateien und Verzeichnisse (nicht nur Verzeichnisse)-h– Menschenlesbare Größen (G, M, K statt Bytes)-x– Bleibt auf dem aktuellen Dateisystemsort -rh– Sortiert absteigend nach menschenlesbarer Größe
Nur Verzeichnisse mit Tiefenbegrenzung
Wenn du nur die oberste Verzeichnisebene sehen willst:
du -hx --max-depth=1 /home | sort -rh
Zusammenfassung
| Aufgabe | Befehl |
|---|---|
| Dateien > 100 MB finden | find . -xdev -type f -size +100M |
| Große Dateien sortiert anzeigen | find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r |
| Größte Verzeichnisse finden | du -ahx . | sort -rh | head |
| Verzeichnisgrößen (erste Ebene) | du -hx --max-depth=1 /home | sort -rh |
Mit diesen Befehlen identifizierst du schnell, was deinen Speicherplatz belegt. Lösche oder verschiebe die Dateien anschließend gezielt.