Jeder Linux-Nutzer kennt diesen Moment des puren Frusts. Du willst ein Backup machen oder ein neues Spiel installieren, und plötzlich schreit das Terminal dich an: Kein Speicherplatz mehr verfügbar. Du starrst auf den Cursor und fragst dich, wo diese 500 Gigabyte eigentlich abgeblieben sind. Meistens verbirgt sich der Übeltäter in irgendeinem tief verschachtelten Cache-Ordner oder einer Log-Datei, die seit drei Jahren unbemerkt vor sich hin wuchert. Um dieses Problem schnell und ohne grafischen Schnickschnack zu lösen, musst du wissen, wie man Linux List Directories With Size effizient einsetzt. Es geht nicht nur darum, Zahlen zu sehen, sondern die richtigen Schlüsse daraus zu ziehen, bevor dein System wegen einer vollen Partition den Dienst quittiert.
In der Praxis scheitern viele Administratoren an der Flut der Informationen. Wer einfach nur einen Befehl eintippt und von tausenden Zeilen Text erschlagen wird, hat nichts gewonnen. Wir brauchen Klarheit. Wir wollen wissen, welcher Ordner im /var-Verzeichnis gerade die SSD auffrisst. Ich habe in meiner Laufbahn als Systemadministrator oft genug erlebt, dass Leute versehentlich ganze Server lahmgelegt haben, weil sie den falschen Löschbefehl ausführten, nur um Platz zu schaffen. Das muss nicht sein. Mit den richtigen Werkzeugen im Werkzeugkasten behältst du die volle Kontrolle über dein Dateisystem. Dieser ähnliche Beitrag könnte Sie auch ansprechen: owl labs meeting owl 3.
Die Grundlagen der Speicherplatzanalyse auf der Kommandozeile
Wenn du schnell wissen willst, wie viel Platz noch da ist, greifst du wahrscheinlich zuerst zu df -h. Das ist ein guter Anfang. Es zeigt dir, welche Partitionen wie stark belegt sind. Aber das hilft dir nicht weiter, wenn du die nadel im Heuhaufen suchst. Du weißt zwar, dass /home zu 98 Prozent voll ist, aber nicht, ob es an deinen alten Video-Projekten oder an den versteckten Konfigurationsdateien liegt. Hier kommt die eigentliche Arbeit ins Spiel.
Der klassische Weg mit du
Das Standardwerkzeug für diese Aufgabe ist du, kurz für "disk usage". In seiner einfachsten Form ist es allerdings ziemlich gesprächig und unübersichtlich. Ohne Parameter rattert das Tool jeden einzelnen Unterordner herunter. Das will niemand lesen. Die Kombination -sh ist dein bester Freund. Das s steht für "summary" (Zusammenfassung) und das h für "human-readable" (menschenlesbar). Damit bekommst du eine saubere Angabe in Kilobyte, Megabyte oder Gigabyte. Wie erörtert in detaillierten Analysen von CHIP, sind die Auswirkungen bemerkenswert.
Ich nutze oft den Befehl du -sh * im aktuellen Verzeichnis. Das gibt mir sofort einen Überblick über alles, was sichtbar ist. Aber Vorsicht: Versteckte Dateien, die mit einem Punkt beginnen, werden dabei ignoriert. Wenn du wirklich alles sehen willst, musst du tiefer graben. Ein häufiger Fehler ist es, die Tiefe der Suche nicht zu begrenzen. Wenn du du auf die Wurzel des Dateisystems loslässt, kannst du dir erst mal einen Kaffee holen. Dein Terminal wird für Minuten blockiert sein.
Die Bedeutung von Blockgrößen und Dateisystemen
Ein technisches Detail, das oft übersehen wird: Die Größe einer Datei auf der Festplatte entspricht nicht immer ihrer tatsächlichen Größe im RAM oder bei der Übertragung. Dateisysteme wie ext4 oder Btrfs speichern Daten in Blöcken. Wenn eine Datei nur 1 Byte groß ist, belegt sie trotzdem einen ganzen Block, der oft 4 KB groß ist. Wenn du Millionen winziger Dateien hast, zeigt dir dein System eine viel höhere Belegung an, als die Summe der Dateigrößen vermuten ließe. Das ist ein wichtiger Punkt, wenn du Speicherplatz für Webserver mit vielen kleinen Cache-Files optimierst.
Linux List Directories With Size für Profis im Alltag
Es gibt Momente, da reicht die einfache Zusammenfassung nicht aus. Du stehst vor einem riesigen Verzeichnisbaum und musst die Top 10 der Platzverschwender finden. Hier kombinieren wir die Kraft von Pipes. Ein Klassiker ist die Verbindung von du mit sort.
Sortieren nach der wahren Größe
Wer die Ausgabe von du -h einfach in sort -n wirft, erlebt eine böse Überraschung. Der Sortierbefehl versteht ohne Hilfe nicht, dass 1 GB größer ist als 500 MB, weil er nur auf die Zahlen achtet. Deshalb nutzt man sort -h. Ein praktisches Kommando sieht so aus: du -hd 1 | sort -h. Das -d 1 begrenzt die Tiefe auf die erste Ebene. So siehst du sofort, welcher Unterordner das meiste Gewicht auf die Waage bringt. Das ist effizient. Das spart Zeit. Und es schont deine Nerven.
Die Falle mit den Dateisystemgrenzen
Ein weiteres Szenario: Du hast mehrere Festplatten oder Netzlaufwerke gemountet. Wenn du jetzt eine Analyse fährst, willst du vielleicht nicht, dass das Tool über das Netzwerk in dein langsames NAS kriecht oder eine externe USB-Platte scannt. Verwende hier den Parameter -x oder --one-file-system. Damit weist du das Programm an, auf der aktuellen Partition zu bleiben. Das ist besonders wichtig, wenn du die Systempartition / aufräumst und verhindern willst, dass der Scan in /mnt oder /media abdriftet.
Moderne Alternativen zum alten Standard
Obwohl du auf fast jedem Linux-System vorinstalliert ist, gibt es heutzutage Tools, die das Leben deutlich leichter machen. Wenn du die Freiheit hast, Pakete zu installieren, solltest du dir Alternativen anschauen. Sie bieten oft eine interaktive Oberfläche direkt im Terminal.
Ncdu als interaktiver Retter
Mein absoluter Favorit für diese Aufgabe ist ncdu. Es steht für "NCurses Disk Usage". Nach dem Start scannt es das Verzeichnis und präsentiert dir eine Liste, durch die du mit den Pfeiltasten navigieren kannst. Du siehst sofort visuelle Balken, die den relativen Platzverbrauch anzeigen. Das Beste daran ist, dass du direkt aus dem Programm heraus Dateien löschen kannst. Das ist extrem hilfreich, wenn du dich durch hunderte von Log-Ordnern wühlst. Man spart sich das ständige Wechseln zwischen ls, du und rm.
Wer auf Arch Linux oder Ubuntu unterwegs ist, installiert es mit einem einfachen Befehl über den Paketmanager. Es ist klein, schnell und verbraucht kaum Ressourcen. In der Welt der Server-Administration ist es für mich eines der wenigen Tools, die ich auf fast jeder Maschine nachinstalliere. Es fühlt sich einfach natürlicher an, durch die Verzeichnisse zu "surfen", anstatt statische Textwüsten zu analysieren.
Staub wischen mit Dust
Ein neuerer Kandidat ist dust, geschrieben in Rust. Es ist darauf ausgelegt, die Informationen noch intuitiver darzustellen. Anstatt einer einfachen Liste baut es eine Art Baumstruktur, die den Platzverbrauch grafisch verdeutlicht. Das ist besonders schick, wenn du moderne Terminal-Emulatoren nutzt, die Farben und Sonderzeichen gut darstellen können. Es ist vielleicht kein Standard auf jedem Enterprise-Server, aber für den persönlichen Desktop oder die Workstation ein echter Gewinn an Lebensqualität.
Spezielle Anwendungsfälle und Skripting
Manchmal musst du diese Informationen automatisiert verarbeiten. Vielleicht willst du ein Skript schreiben, das dich warnt, wenn ein bestimmter Ordner über 10 GB wächst. Hier helfen uns die maschinenlesbaren Formate.
Ausgabe für Skripte aufbereiten
Wenn du die Größe in Bytes brauchst, um damit zu rechnen, solltest du den Schalter -b nutzen. Menschenlesbare Formate wie "2G" sind für bash oder python schwer zu verarbeiten. Ein kleiner Einzeiler kann prüfen, ob das /var/log Verzeichnis zu groß wird und eine E-Mail an den Admin senden. Solche proaktiven Maßnahmen verhindern Ausfallzeiten. Ich habe schon erlebt, dass Datenbanken korrumpiert wurden, weil die Platte während eines Schreibvorgangs voll lief. Das ist ein Albtraum, den man mit drei Zeilen Code verhindern kann.
Find und du kombinieren
Ein fortgeschrittener Trick ist die Kombination mit dem find-Befehl. Angenommen, du suchst nur nach Verzeichnissen, die älter als 30 Tage sind und willst deren Größe wissen. Das geht über die -exec Option von find. Das ist mächtig, aber auch gefährlich. Ein kleiner Tippfehler und du scannst Dinge, die du gar nicht sehen wolltest. Man sollte solche Befehle immer erst mit einem echo davor testen, um zu sehen, was passieren würde.
Häufige Irrtümer beim Platzverbrauch unter Linux
Es gibt ein paar Dinge, die selbst erfahrene Nutzer oft falsch verstehen. Eines davon ist der Unterschied zwischen "Size" und "Used Space".
Sparse Files und komprimierte Dateisysteme
Manche Dateien sehen riesig aus, belegen aber kaum Platz. Das nennt man Sparse Files. Das sind Dateien, die große Bereiche mit Nullen enthalten, die das Dateisystem intelligent optimiert. Wenn du ls -lh nutzt, siehst du die scheinbare Größe. Wenn du du -sh nutzt, siehst du den tatsächlich belegten Platz. Auf modernen Dateisystemen wie ZFS oder Btrfs kommt zudem oft eine transparente Kompression zum Einsatz. Hier wird die Analyse noch komplexer, da die Daten auf der Platte physisch weniger Platz brauchen, als das Betriebssystem meldet.
Gelöschte aber noch offene Dateien
Das ist der Klassiker: Du löschst eine riesige Log-Datei mit rm, aber der Speicherplatz wird nicht frei. Warum? Weil ein Prozess die Datei noch geöffnet hält. Linux gibt den Speicher erst frei, wenn der letzte Dateihandle geschlossen ist. In so einem Fall hilft das Tool lsof. Es zeigt dir an, welche Prozesse auf welche Dateien zugreifen. Oft hilft nur ein Neustart des betreffenden Dienstes, zum Beispiel systemctl restart nginx, um den Platz endlich wirklich freizugeben. Wer das nicht weiß, verzweifelt schnell, weil df beharrlich behauptet, die Platte sei voll, obwohl man doch gerade aufgeräumt hat.
Die offizielle Dokumentation zu den GNU Coreutils bietet hier exzellente Details: GNU Coreutils Manual. Es lohnt sich, dort mal in die Tiefe zu gehen, wenn man die exakten Unterschiede der Parameter verstehen will.
Optimale Strategie für saubere Systeme
Wie hält man ein System langfristig sauber? Es bringt nichts, alle sechs Monate eine Panik-Aktion zu starten. Man braucht Routine.
- Regelmäßige Checks: Einmal pro Woche kurz schauen, was die großen Verzeichnisse machen.
- Log-Rotation: Stelle sicher, dass
logrotatekorrekt konfiguriert ist. Alte Logs sollten komprimiert und nach einer gewissen Zeit automatisch gelöscht werden. - Cache-Management: Tools wie
aptoderpacmanspeichern heruntergeladene Pakete. Einapt cleankann Wunder wirken. - Docker aufräumen: Wenn du Container nutzt, sammeln sich oft ungenutzte Images und Volumes an.
docker system pruneist hier das Zauberwort.
Wer auf Enterprise-Niveau arbeitet, nutzt Monitoring-Tools wie Prometheus oder Zabbix. Diese Systeme alarmieren dich automatisch, bevor es kritisch wird. Das ist wesentlich professioneller, als manuell nach Fehlern zu suchen. Aber auch auf dem privaten Laptop ist ein gesundes Bewusstsein für die Belegung der SSD wichtig, vor allem bei den heute oft verlöteten und damit nicht erweiterbaren Speichern.
Die Rolle von Quotas
In Umgebungen mit vielen Nutzern, etwa an Universitäten oder in Firmen, sind Quotas ein bewährtes Mittel. Man teilt jedem Nutzer ein festes Kontingent zu. Wenn das voll ist, kann der Nutzer nichts mehr speichern, aber der Rest des Systems bleibt stabil. Das verhindert, dass ein einzelner User durch ein Amok laufendes Skript den ganzen Server lahmlegt. Die Einrichtung ist etwas aufwendiger, spart aber langfristig massiv Administrationsaufwand.
Tipps für Desktop-Nutzer
Wenn du kein Terminal-Fan bist, gibt es auch grafische Helfer wie Baobab (Disk Usage Analyzer) unter GNOME oder Filelight unter KDE. Diese Programme visualisieren den Platzverbrauch als Tortendiagramm oder Ringgrafik. Das ist intuitiv und hilft, sehr schnell die dicken Brocken zu identifizieren. Aber mal ehrlich: Nichts schlägt die Geschwindigkeit eines gut getippten Befehls in der Bash.
Praktische nächste Schritte
Damit du das Gelernte direkt anwenden kannst, empfehle ich dir folgendes Vorgehen. Öffne dein Terminal und führe diese Schritte nacheinander aus:
- Verschaffe dir einen Überblick über alle Partitionen mit
df -h. Prüfe, welche Mountpoints über 80% Belegung aufweisen. - Navigiere in das oberste Verzeichnis der vollen Partition.
- Nutze den Befehl
du -hd 1 | sort -h, um die größten Unterordner zu finden. - Wiederhole diesen Schritt in den verdächtigen Ordnern, bis du die konkreten Dateien gefunden hast.
- Installiere bei Bedarf
ncduüber deinen Paketmanager (z.B.sudo apt install ncdu), um die weitere Analyse interaktiv und komfortabler zu gestalten. - Prüfe mit
lsof +L1, ob gelöschte Dateien noch von Prozessen blockiert werden, falls der Speicherplatz nach dem Löschen nicht sofort frei wird.
Diese Routine dauert keine zwei Minuten und bewahrt dich vor bösen Überraschungen am Montagmorgen. Ein sauberes System ist ein schnelles System. Wer seine Verzeichnisse im Griff hat, hat auch seine Arbeit im Griff. Also, schau jetzt mal nach, was sich in deinem /tmp oder deinem Download-Ordner so alles angesammelt hat. Es ist wahrscheinlich mehr, als du denkst.