linux get size of directory

linux get size of directory

Wer kennt das nicht? Plötzlich meldet das System, dass die Festplatte voll ist. Du sitzt vor dem Terminal und fragst dich, welcher Ordner eigentlich diese Gigabytes verschlingt. Die Suche nach der Lösung führt oft direkt zu dem Befehl Linux Get Size Of Directory, der dir schnell Gewissheit verschafft. Es ist kein Geheimnis, dass Linux-Nutzer ihre Systeme lieben, weil sie volle Kontrolle haben. Doch diese Kontrolle setzt voraus, dass man die richtigen Werkzeuge kennt und sie auch bedienen kann. Ein einfacher Blick in den Dateimanager reicht oft nicht aus, besonders wenn man auf einem Server ohne grafische Oberfläche arbeitet. Ich habe schon Nächte damit verbracht, Log-Dateien zu jagen, die unkontrolliert gewachsen sind. Das frustriert. Aber genau hier trennt sich die Spreu vom Weizen: Wer die Kommandozeile beherrscht, löst das Problem in Sekunden, während andere noch auf den Ladebalken ihres GUI-Tools starren.

Die Magie hinter du und df im Alltag

Die meisten Administratoren greifen instinktiv zu du. Das steht für „disk usage“. Es ist das Brot-und-Butter-Werkzeug schlechthin. Wenn du wissen willst, wie viel Platz ein Verzeichnis belegt, ist das dein erster Anlaufpunkt. Aber Vorsicht: du zählt Dateien. Wenn du eine riesige Datei löschst, die aber noch von einem Prozess offen gehalten wird, zeigt du den Platz als frei an, während df (disk free) behauptet, die Platte sei immer noch voll. Das ist ein klassischer Fall von Verwirrung für Einsteiger.

Warum die Standardausgabe von du oft nervt

Wenn du einfach nur du tippst, wirst du mit einer endlosen Liste von Unterverzeichnissen überflutet. Das hilft niemandem. Standardmäßig gibt das Tool die Größen in Blocks aus. Wer rechnet schon gerne im Kopf Blocks in Gigabyte um? Niemand. Deshalb ist der Parameter -h für „human-readable“ dein bester Freund. Er wandelt die kryptischen Zahlen in lesbare Formate wie KB, MB oder GB um. Das macht die Analyse sofort greifbarer. Ich persönlich nutze fast immer -sh, um nur die Gesamtsumme eines Ordners zu sehen, ohne den ganzen Kleinkram darunter.

Den Überblick behalten mit der Rechentiefe

Ein oft übersehener Lebensretter ist --max-depth. Stell dir vor, du bist im Root-Verzeichnis. Ein einfaches du -h würde Millionen Zeilen ausspucken. Mit --max-depth=1 limitierst du die Anzeige auf die erste Ebene. So siehst du sofort: Aha, /var braucht 40 GB und /home nur 10 GB. Das ist effiziente Fehlersuche. Ohne diese Strukturierung suchst du die Nadel im Heuhaufen und verschwendest Zeit, die du besser für das eigentliche Debugging nutzen könntest.

Linux Get Size Of Directory und die Suche nach den Platzfressern

Es gibt Situationen, in denen man nicht nur wissen will, wie groß ein Ordner ist, sondern man möchte die größten Dateien innerhalb dieses Ordners finden. Hier kommt die Kombination aus verschiedenen Befehlen ins Spiel. Linux ist wie Lego für Erwachsene; man steckt kleine Teile zusammen, um etwas Großes zu bauen. Eine beliebte Kette ist es, die Ausgabe von du an sort weiterzureichen. So stehen die dicksten Brocken ganz unten in deiner Liste. Das spart das Scrollen.

Sortieren wie ein Profi

Ein häufiger Fehler ist die Verwendung von normalem sort. Da wir „human-readable“ Werte nutzen (wie 1G und 200M), sortiert ein normales Programm 200M über 1G, weil 200 größer als 1 ist. Das ist natürlich Quatsch. Du brauchst sort -h. Nur so erkennt das System, dass ein Gigabyte mehr ist als zweihundert Megabyte. Solche Details entscheiden darüber, ob du dein Problem löst oder dich nur tiefer in den Wahnsinn treibst. Ich habe früher oft den Fehler gemacht, die Einheiten zu ignorieren, und mich dann gewundert, warum meine Liste völlig unlogisch aussah.

Versteckte Dateien und das Problem mit den Punkten

Ein weiteres Ärgernis sind versteckte Dateien. In Linux beginnt alles, was versteckt ist, mit einem Punkt. Ein einfacher Befehl wie du -sh * ignoriert diese Dateien oft. Wenn dein Home-Verzeichnis plötzlich voll ist, aber alle sichtbaren Ordner klein wirken, liegt es meist an einem riesigen .cache-Ordner oder verwaisten .logs von irgendwelchen Anwendungen. Um das zu umgehen, muss man Muster verwenden, die auch den Punkt einschließen. Das ist mühsam, aber notwendig, wenn man nicht die Hälfte der Wahrheit übersehen will.

Alternative Werkzeuge für mehr Komfort

Manchmal will man mehr als nur Text in einer schwarzen Box. Es gibt Tools, die das Leben leichter machen, ohne dass man die Philosophie der Kommandozeile verlassen muss. ncdu ist hier der absolute König. Es ist eine ncurses-basierte Version von du. Es ist schnell, interaktiv und erlaubt es dir, mit den Pfeiltasten durch die Verzeichnisse zu navigieren.

Warum ncdu fast immer die bessere Wahl ist

Wenn ich auf einem Server aufräumen muss, installiere ich oft als Erstes ncdu. Es scannt das System und zeigt eine Balkengrafik für die Platzbelegung an. Du kannst Verzeichnisse direkt im Programm löschen. Das ist gefährlich, ja, aber auch extrem effizient. Man spart sich das ständige Tippen von neuen Pfaden. Aber Achtung: Auf extrem großen Dateisystemen mit Millionen von Dateien kann der Scan-Vorgang von ncdu eine Weile dauern, da es den gesamten Index im Speicher halten muss. Da ist das klassische du manchmal doch die robustere Wahl.

Die Rolle von Quotas im Mehrbenutzersystem

In Firmenumgebungen oder auf geteilten Webservern spielt die Speicherplatzmessung eine noch größere Rolle. Hier kommen oft Disk Quotas zum Einsatz. Das bedeutet, das System begrenzt hart, wie viel Platz ein User belegen darf. Wenn ein User sein Limit erreicht, schlagen Befehle wie Linux Get Size Of Directory zwar immer noch korrekt aus, aber der User kann keine einzige Datei mehr schreiben. Das führt oft zu seltsamen Fehlermeldungen in Anwendungen, die behaupten, die Festplatte sei voll, obwohl global gesehen noch Terabytes frei sind. Hier hilft nur der Blick in die Quota-Verwaltung der jeweiligen Distribution, wie zum Beispiel bei Debian.

Dateisysteme und ihre Tücken

Nicht jedes Dateisystem zählt gleich. Es gibt Unterschiede zwischen ext4, XFS und Btrfs. Besonders Btrfs mit seinen Snapshots kann einen in den Wahnsinn treiben. Du löschst eine 10 GB Datei, aber der freie Speicherplatz erhöht sich um genau null Byte. Warum? Weil die Datei noch in einem Snapshot existiert.

Sparse Files und die Illusion von Größe

Dann gibt es noch „Sparse Files“. Das sind Dateien, die vorgeben, eine bestimmte Größe zu haben, aber nur den Platz belegen, der tatsächlich mit Daten gefüllt ist. Ein Disk-Image könnte 100 GB groß sein, aber real nur 2 GB auf der Platte verbrauchen. Wenn du jetzt du ausführst, siehst du die 2 GB. Wenn du ls -l nutzt, siehst du die 100 GB. Diese Diskrepanz muss man verstehen, sonst zieht man völlig falsche Schlüsse bei der Kapazitätsplanung. Das ist besonders wichtig in virtualisierten Umgebungen oder bei Datenbanken.

Inodes – Der unsichtbare Endgegner

Es gibt eine Art von „Platte voll“, bei der dir kein Befehl zur Ordnergröße hilft. Wenn du Millionen von winzigen Dateien hast (zum Beispiel PHP-Session-Dateien, die nie gelöscht wurden), gehen dir die Inodes aus. Jedes Dateisystem hat eine begrenzte Anzahl an Adresszeigern für Dateien. Sind diese weg, kannst du keine neue Datei anlegen, selbst wenn noch 500 GB Platz frei sind. In diesem Fall hilft df -i. Es zeigt dir die Inode-Belegung an. Ich habe Systeme gesehen, die bei 2% Speicherplatzbelegung abgestürzt sind, weil die Inodes bei 100% waren. Das ist ein fieser Fehler, den man einmal erleben muss, um ihn nie wieder zu vergessen.

Automatisierung und Monitoring

Manuell nachzuschauen ist gut für den Moment. Aber auf Dauer willst du nicht jeden Montagmorgen prüfen, ob die Logs überlaufen. Hier kommen Skripte ins Spiel. Ein kleiner Cronjob, der einmal täglich die Größe kritischer Verzeichnisse prüft und bei Überschreiten eines Schwellenwerts eine E-Mail schickt, wirkt Wunder für den Schlafpegel eines Admins.

Einfache Skripte für den Hausgebrauch

Man kann sich leicht ein Bash-Skript schreiben, das die Ausgabe von du filtert und nur Verzeichnisse meldet, die größer als ein definierter Wert sind. Solche Skripte nutzen oft reguläre Ausdrücke oder einfache if-Abfragen. Es ist kein Hexenwerk. Wenn man das mit Tools wie Logrotate kombiniert, die alte Dateien automatisch komprimieren oder löschen, gehört das Platzproblem fast der Vergangenheit an. Die offizielle Dokumentation von Projekten wie GNU Coreutils bietet hier tiefe Einblicke in die Möglichkeiten der mitgelieferten Werkzeuge.

Moderne Monitoring-Lösungen

Für professionelle Umgebungen nutzt man eher Prometheus oder Zabbix. Diese Tools zeichnen den Verlauf der Festplattenbelegung auf. So siehst du nicht nur, dass die Platte voll ist, sondern auch, wie schnell sie vollgegangen ist. Ein linearer Anstieg ist normal. Ein plötzlicher Zacken nach oben deutet auf einen Amok laufenden Prozess oder einen Angriff hin. Diese historischen Daten sind Gold wert, wenn es darum geht, Budgets für neue Hardware zu rechtfertigen. Wenn du beweisen kannst, dass das Datenwachstum konstant 10% pro Monat beträgt, bekommst du viel eher die Freigabe für neue SSDs.

Tipps für die Praxis und häufige Stolperfallen

Wenn man viel im Terminal arbeitet, entwickelt man Marotten. Eine meiner wichtigsten Regeln ist: Glaube niemals einer einzigen Quelle. Wenn du und df sich widersprechen, hat meistens ein Prozess noch eine gelöschte Datei im Zugriff. Ein beherztes lsof | grep deleted zeigt dir genau diese Geisterdateien an. Oft sind es alte Log-Dateien von Apache oder Nginx, die nach einer Rotation nicht korrekt freigegeben wurden. Ein Neustart des Dienstes löst das Problem sofort.

Symlinks und die Gefahr der Doppelzählung

Ein weiterer Punkt sind symbolische Links. Wenn du du -L ausführst, folgt das Programm den Links. Das kann dazu führen, dass du Speicherplatz doppelt oder dreifach zählst, wenn viele Links auf denselben Ordner verweisen. Das verfälscht das Ergebnis massiv. Standardmäßig folgt du keinen Links, was auch gut so ist. Man sollte diesen Schalter nur nutzen, wenn man ganz genau weiß, was man tut.

Dateinamen mit Leerzeichen

Es klingt trivial, aber Leerzeichen in Ordnernamen machen das Parsen der Ausgabe in Skripten zur Hölle. Nutze immer Anführungszeichen oder spezielle Trennzeichen, wenn du die Ergebnisse von Befehlen weiterverarbeitest. Viele Anfänger scheitern daran, dass ihr Skript beim ersten Ordner namens „Meine Dokumente“ abbricht oder zwei verschiedene Pfade daraus macht. Solche Fehler sind vermeidbar, wenn man von Anfang an sauber arbeitet.

Grafische Tools für Desktop-Nutzer

Nicht jeder will sich durch das Terminal quälen. Wenn du eine grafische Oberfläche hast, gibt es fantastische Programme wie Baobab (Disk Usage Analyzer) unter GNOME oder Filelight unter KDE. Diese Tools visualisieren den Speicherplatz als Ringdiagramme oder Kacheln.

Warum Visualisierung beim Aufräumen hilft

Das menschliche Auge erkennt Muster viel schneller als eine Liste von Zahlen. In Baobab siehst du sofort einen riesigen roten Block – das ist oft der Übeltäter. Es macht richtig Spaß, diese Blöcke schrumpfen zu sehen, wenn man alte Downloads oder Cache-Daten löscht. Für den schnellen Scan zwischendurch auf dem Laptop ist das unschlagbar. Dennoch bleibt die Kommandozeile das mächtigere Werkzeug, wenn es um Filterung und Fernwartung geht. Ich nutze beides, je nachdem, ob ich gerade lokal am Rechner sitze oder per SSH auf einem Server im Rechenzentrum eingeloggt bin.

Spezialfall Docker und Container

In der modernen Softwareentwicklung nutzen fast alle Docker. Container können massiv Platz fressen, und zwar oft an Stellen, die man mit einem normalen Check nicht sofort sieht. docker system df ist hier der Befehl der Wahl. Er zeigt an, wie viel Platz Images, Container und Volumes belegen. Oft liegen dort Gigabytes an alten Image-Layern herum, die niemand mehr braucht. Ein docker system prune wirkt hier oft wie eine Frischzellenkur für die Festplatte. Wer viel mit Containern arbeitet, sollte diesen Aspekt nie vernachlässigen, da die Standard-Linux-Tools hier oft nur die halbe Wahrheit zeigen, da sie die internen Layer-Strukturen nicht verstehen.

Strategien für dauerhaft saubere Systeme

Regelmäßiges Aufräumen ist wie Zähneputzen. Man muss es einfach machen. Ein guter Ansatz ist die Trennung von Betriebssystem und Daten. Wenn /home oder /var auf einer eigenen Partition liegen, kann ein überlaufendes Logfile nicht das ganze System zum Absturz bringen. Das ist eine alte Admin-Weisheit, die heute noch genauso gilt wie vor zwanzig Jahren.

Den Cache im Auge behalten

Viele Anwendungen legen Caches an, die nie automatisch bereinigt werden. Der Paketmanager apt speichert zum Beispiel jede heruntergeladene .deb-Datei in /var/cache/apt/archives/. Über die Jahre sammeln sich dort Unmengen an Müll an. Ein regelmäßiges sudo apt clean gibt diesen Platz wieder frei. Ähnliches gilt für Browser-Caches oder Thumbnails von Bildbetrachtern. Es lohnt sich, diese Orte zu kennen und gelegentlich mit dem Besen durchzugehen.

Die Bedeutung von Kompression

Manche Daten müssen auf der Platte bleiben, werden aber selten gebraucht. Hier kann Kompression helfen. Moderne Dateisysteme wie ZFS oder Btrfs unterstützen transparente Kompression. Das bedeutet, das System komprimiert die Daten beim Schreiben und entpackt sie beim Lesen, ohne dass du etwas davon merkst. Das kann den belegten Platz halbieren, kostet aber ein wenig CPU-Leistung. Für reine Datengräber ist das eine hervorragende Option, um die Hardware besser auszunutzen.

Wenn du jetzt vor deinem Rechner sitzt und die ersten Schritte machen willst, um deinen Speicherplatz zu optimieren, dann fang am besten direkt an. Es gibt keine bessere Methode als die direkte Anwendung. Hier sind deine nächsten Schritte für heute:

  1. Öffne dein Terminal und verschaffe dir mit df -h einen groben Überblick über alle gemounteten Partitionen.
  2. Identifiziere die Partition, die am vollsten ist, und wechsle in deren Mount-Punkt.
  3. Nutze das Tool, um die größten Ordner auf der ersten Ebene zu finden und sortiere sie direkt, damit du nicht suchen musst.
  4. Schau dir gezielt den /var/log Ordner an und prüfe, ob dort alte Dateien liegen, die du mit gzip komprimieren oder direkt löschen kannst.
  5. Installiere dir ncdu, falls du es noch nicht hast, und mache einen interaktiven Rundgang durch dein Home-Verzeichnis, um vergessene Leichen in den versteckten Ordnern zu finden.

Wer diese Routine einmal im Monat durchzieht, wird nie wieder von einer „Disk Full“ Meldung im unpassendsten Moment überrascht. Linux gibt dir alle Werkzeuge an die Hand, du musst sie nur benutzen. Viel Erfolg beim Aufräumen.

HH

Hannah Hartmann

Mit faktenbasierter Arbeitsweise liefert Hannah Hartmann Beiträge, die Leserinnen und Lesern Orientierung im Nachrichtengeschehen geben.