VMware ESXi and vSphere Cluster Management
Speicherverbrauch von Dateien und Verzeichnissen mit du ermitteln
Lerne, wie du mit du den Speicherverbrauch von Dateien und Verzeichnissen prüfst, Pfade angibst und mit -h sowie -a lesbare Detailausgaben erzeugst.
Wofür steht du?
du steht für disk usage. Das Linux-Kommando ermittelt, wie viel Speicherplatz Dateien und Verzeichnisse auf einem Dateisystem belegen. Es eignet sich besonders, um den Verbrauch einer Verzeichnisstruktur zu untersuchen und große Bereiche zu finden.
Wichtig ist die Unterscheidung zwischen der logischen Dateigröße und der tatsächlichen Dateisystembelegung: du betrachtet belegte Datenträgerblöcke. Eine Datei kann deshalb auf dem Dateisystem etwas mehr oder weniger Platz belegen, als ihre reine Byte-Größe vermuten lässt. Gründe dafür sind unter anderem die Blockgröße des Dateisystems, sparse Dateien und Hardlinks.
- Logische Größe: Die Anzahl der Bytes, die der Dateiinhalt umfasst.
- Belegte Größe: Der Speicherplatz, den das Dateisystem tatsächlich für die Datei verwendet.
Voraussetzungen und wichtige Begriffe
Für die Beispiele genügt ein geöffnetes Linux-Terminal sowie ein grundlegendes Verständnis von Dateien, Verzeichnissen und Pfaden.
- Das aktuelle Arbeitsverzeichnis ist das Verzeichnis, auf das sich ein Befehl ohne ausdrücklich angegebenen Pfad bezieht.
- Ein Unterverzeichnis liegt innerhalb eines anderen Verzeichnisses.
- Eine Verzeichnisstruktur umfasst ein Verzeichnis, seine Unterverzeichnisse und die darin enthaltenen Dateien.
- Ein absoluter Pfad beginnt mit dem Wurzelverzeichnis
/, zum Beispiel/home/bob/example_dir. - Ein relativer Pfad wird vom aktuellen Arbeitsverzeichnis aus aufgelöst, zum Beispiel
./example_diroderdocs.
Grundaufruf: du ohne Optionen
Der einfachste Aufruf lautet:
du
Ohne Zielpfad untersucht du das aktuelle Arbeitsverzeichnis. Dabei werden die Unterverzeichnisse der Verzeichnisstruktur einzeln ausgegeben. Am Ende folgt eine Gesamtzeile für den gesamten untersuchten Bereich.
Eine beispielhafte Ausgabe kann ungefähr so aussehen:
12 ./bilder
8 ./dokumente
28 .
Die erste Spalte enthält den belegten Speicher in einer Blockeinheit, die zweite Spalte den Pfad. Die letzte Zeile mit . beschreibt die Gesamtbelegung des aktuellen Verzeichnisses einschließlich seiner Unterverzeichnisse.
Ein bestimmtes Verzeichnis prüfen
Ein Zielpfad kann als Argument hinter dem Befehl angegeben werden:
du /home/bob/example_dir
Hier wird nicht das aktuelle Arbeitsverzeichnis, sondern /home/bob/example_dir untersucht. Weil der Pfad mit / beginnt, handelt es sich um einen absoluten Pfad.
Auch ein relativer Pfad ist möglich:
du example_dir
du ./example_dir
Diese Aufrufe beziehen sich auf ein Verzeichnis namens example_dir im aktuellen Arbeitsverzeichnis. Die Abschlusszeile des Befehls stellt den gesamten Verbrauch der darunterliegenden Struktur dar. Sie umfasst also das Zielverzeichnis, seine Unterverzeichnisse und deren Dateien.
Menschenlesbare Größen mit -h
Große blockbasierte Zahlen sind im Terminal oft schwer einzuschätzen. Die Option -h steht für human-readable, also menschenlesbare Ausgabe:
du -h /home/bob/example_dir
Statt reiner Blockzahlen verwendet du passende Einheiten wie K, M, G oder T. Je nach Implementierung und Ausgabeformat können auch Einheiten wie KiB, MiB oder GiB erscheinen. Dadurch lässt sich schneller erkennen, ob ein Verzeichnis beispielsweise einige Megabyte oder mehrere Gigabyte belegt.
12K /home/bob/example_dir/bilder
8.0K /home/bob/example_dir/dokumente
28K /home/bob/example_dir
Dateien zusätzlich mit -a anzeigen
Ohne besondere Option fasst du die Belegung hauptsächlich auf Verzeichnisebene zusammen. Einzelne Dateien erscheinen normalerweise nicht als eigene Zeilen. Mit -a werden zusätzlich Dateien und Verzeichnisse ausgegeben:
du -a /home/bob/example_dir
Die Ausgabe kann beispielsweise so aussehen:
4 /home/bob/example_dir/bilder/logo.png
12 /home/bob/example_dir/bilder
4 /home/bob/example_dir/notizen.txt
20 /home/bob/example_dir
Für eine Kombination aus Dateiauflistung und lesbaren Einheiten werden die Optionen zusammen verwendet:
du -ah /home/bob/example_dir
Die Reihenfolge der kurzen Optionen kann bei diesen Aufrufen auch als -ha geschrieben werden. Bei großen Verzeichnisbäumen kann -a sehr viele Zeilen erzeugen, weil jede Datei zusätzlich sichtbar wird.
Wichtige du-Aufrufe und Optionen
| Aufruf oder Option | Wirkung | Typischer Einsatz |
|---|---|---|
du | Untersucht das aktuelle Arbeitsverzeichnis und seine Unterverzeichnisse. | Schneller Überblick über den aktuellen Ordner. |
du VERZEICHNIS | Untersucht den angegebenen absoluten oder relativen Pfad. | Belegung eines bestimmten Verzeichnisses prüfen. |
-h | Zeigt Größen in menschenlesbaren Einheiten an. | Größen im Terminal leichter vergleichen. |
-a | Listet neben Verzeichnissen auch einzelne Dateien auf. | Verursacher innerhalb eines Verzeichnisses finden. |
-ah | Kombiniert Dateiauflistung und menschenlesbare Größen. | Detaillierte, gut lesbare Analyse. |
Die Ausgabe richtig interpretieren
| Ausgabebestandteil | Bedeutung |
|---|---|
| Größenwert | Belegte Dateisystemblöcke beziehungsweise eine daraus lesbar formatierte Größe. |
| Pfad | Das Verzeichnis oder bei -a die einzelne Datei, auf die sich der Wert bezieht. |
| Zeile für ein Unterverzeichnis | Belegung dieses Unterverzeichnisses einschließlich seiner eigenen Unterstruktur. |
| Abschließende Gesamtzeile | Gesamte Belegung des angegebenen Zielverzeichnisses einschließlich aller enthaltenen Elemente. |
Ein übergeordnetes Verzeichnis schließt die Inhalte seiner Unterverzeichnisse bereits ein. Wenn beispielsweise /home/bob/example_dir/bilder 12 MiB belegt und die Abschlusszeile für /home/bob/example_dir 28 MiB anzeigt, sind die 12 MiB nicht zusätzlich zu den 28 MiB zu addieren.
Unterverzeichniswerte sind Teilmengen der übergeordneten Summe. Das Addieren aller Zeilen würde Inhalte deshalb mehrfach zählen. Für den gesamten untersuchten Bereich ist normalerweise die letzte Zeile maßgeblich.
Praktische Vorgehensweise
- Prüfe zunächst, welches Verzeichnis aktuell ist, zum Beispiel mit
pwd. - Starte für einen groben Überblick
du -h. - Gib bei Bedarf einen gezielten absoluten oder relativen Pfad an.
- Verwende
du -ah, wenn einzelne Dateien als mögliche Speicherverursacher sichtbar werden sollen. - Beurteile die letzte Zeile als Gesamtwert und die vorherigen Zeilen als Teilbereiche.
Fehlerbehebung
Die Zahlen sind schwer lesbar
Das ist die blockbasierte Standarddarstellung. Verwende die Option -h:
du -h /home/bob/example_dir
Einzelne Dateien fehlen
Ohne -a werden Dateien in der Regel nicht einzeln aufgelistet. Ergänze die Option:
du -a /home/bob/example_dir
Die Ausgabe enthält sehr viele Zeilen
Das Zielverzeichnis kann viele Unterverzeichnisse enthalten. Mit -a wird zusätzlich jede Datei ausgegeben. Wähle einen engeren Zielpfad oder verwende zunächst du -h ohne -a, um den Überblick zu behalten.
Eine übergeordnete Summe scheint Inhalte mehrfach zu zählen
Die übergeordnete Zeile enthält die Werte ihrer Unterverzeichnisse bereits. Interpretiere diese Werte als verschachtelte Teilmengen und verwende für die Gesamtbelegung die letzte Zeile.
Der Pfad kann nicht gelesen werden
Prüfe die Schreibweise des Pfads und ob das Zielverzeichnis tatsächlich existiert. Bei fehlenden Leseberechtigungen kann du bestimmte Inhalte nicht untersuchen. Arbeite nur mit den Berechtigungen, die für die jeweilige Administration zulässig sind.
Prüfungsrelevante Merksätze
dubedeutet disk usage und misst die belegte Dateisystemnutzung.- Ohne Pfad bezieht sich
duauf das aktuelle Arbeitsverzeichnis. -hmacht Größen durch Einheiten wie K, M, G oder T leichter lesbar.-azeigt zusätzlich einzelne Dateien an.- Die Abschlusszeile enthält die Gesamtbelegung der untersuchten Verzeichnisstruktur.
- Übergeordnete Summen enthalten die Werte ihrer Unterverzeichnisse; diese Werte dürfen daher nicht einfach addiert werden.