CLI AI

Welcher Ordner frisst die Platte? du, nach Größe sortiert

2026-05-22

du -h --max-depth=1 . | sort -rh zeigt eine Ebene des Baums, die größte zuerst. Das wiederholst du dann im größten Eintrag, bis du den Übeltäter findest. Dieser Abstieg — nicht ein cleverer Befehl — ist die Technik.

1. Eine Ebene, die größte zuerst

clai
$ clai zeig mir hier die Ordnergrößen, eine Ebene tief, größte zuerst→ du -h --max-depth=1 . | sort -rh348K	.296K	./a52K	./c

sort -rh sortiert menschenlesbare Größen korrekt — es weiß, dass 2G größer ist als 900M, was ein einfaches sort -r nicht weiß.

2. Geh dahin, wo die Größe ist

clai
$ clai mach jetzt dasselbe im größten Ordner→ du -h --max-depth=1 ./a | sort -rh

Zwei oder drei Wiederholungen davon führen meist zur Antwort. Das ist schneller als ein vollständiger Scan des Baums, weil du nie die Zweige liest, die nicht wichtig sind.

3. Andere Dateisysteme nicht mitzählen

clai
$ clai Gesamtgröße von / aber bleib nur auf diesem Dateisystem→ du -shx /348G	/

-x hindert du daran, in andere Mountpoints abzusteigen. Ohne das wandert ein Scan von / in /mnt, Netzwerkfreigaben und Bind-Mounts ab und liefert eine Zahl, die nichts mit der Platte zu tun hat, die du eigentlich freiräumen willst.

4. Die größten einzelnen Dateien

clai
$ clai finde die 10 größten Dateien unter /var→ sudo find /var -xdev -type f -printf '%s\t%p\n' | sort -rn | head -10

Manchmal ist es kein Ordner, sondern ein einziges 40-GB-Log. -xdev ist bei find das Gegenstück zu du -x.

5. Interaktiv durchsuchen

clai
$ clai durchsuche die Speichernutzung interaktiv unter /var→ ncdu -x /var

ncdu scannt einmal und lässt dich mit den Pfeiltasten durch den Baum gehen und dabei löschen. Wenn du du mehr als zweimal ausführen willst, installiere lieber das hier.

6. Dort ausführen, wo alles gelesen werden darf

clai
$ clai scanne / nach Ordnergrößen ohne Berechtigungs-Rauschen→ sudo du -h --max-depth=1 -x / 2>/dev/null | sort -rh | head

Ohne sudo überspringt du stillschweigend Verzeichnisse, die es nicht betreten kann, und unterschätzt das Ergebnis. Mit sudo blendet 2>/dev/null das Rauschen von Dateien aus, die mitten im Scan verschwinden.

Stolperfallen

  • du misst belegte Blöcke, nicht den Dateiinhalt. Eine Million 1-Byte-Dateien belegt weit mehr als eine Million Bytes. du --apparent-size zeigt die andere Zahl.
  • Wenn du und df stark voneinander abweichen, stopp. Das ist ein anderes Problem — gelöschte Dateien, die noch offen gehalten werden, oder erschöpfte Inodes. Siehe den verlinkten Artikel.
  • --max-depth gibt es nur bei GNU. Auf macOS ist das Äquivalent du -d 1, und sort -rh braucht ein aktuelles BSD sort oder coreutils.

Verwandte Fragen

Warum ist du so langsam? Es macht einen stat-Aufruf für jede Datei im Baum. Bei Netzwerk-Dateisystemen oder Millionen kleiner Dateien ist das wirklich langsam — grenze den Pfad ein oder nutze ncdu, das den Scan wenigstens cached.

Was ist der Unterschied zwischen du -s und du -h --max-depth=1? -s gibt eine Gesamtsumme für den ganzen Pfad aus; --max-depth=1 gibt eine Zeile pro Kind aus. Nimm -s, wenn du schon weißt, wo du nachsehen musst.

Wie finde ich Ordner über einer bestimmten Größe? Durch awk pipen: du -m --max-depth=2 . | awk '$1 > 1000' listet alles über 1 GB auf.

Siehe auch

Sag, welche Ordnergrößen du sehen willst, und CliAI schreibt das du, das sort -rh und das -x. In einer Zeile installieren.