Der Befehl "du" wird in unixartigen Betriebssystemen verwendet, um die Größe von Dateistrukturen zu schätzen. "du" ist eine Kurzform und steht für "disk usage".
Der Befehl eignet sich nicht für eine präzise Angabe der Dateigröße, sondern stellt nur einen geschätzten Wert dar. In den meisten Anwendungsfällen ist dieses Vorgehen allerdings ausreichend genau. Ein möglicher Anwendungsfall liegt für den Systemadministrator in der Überprüfung von bestimmten Benutzerverzeichnissen, die eine definierte Größe nicht übersteigen dürfen, um das System nicht unnötig zu verlangsamen.
Ordner werden von dem Befehl "du" immer rekursiv behandelt. Es werden also auch von dem Ordner beinhaltete Dateien, Unterordner und deren Unterordner berücksichtigt.
Des Weiteren müssen Sie beachten, dass der Befehl "du" nur Dateien berücksichtigt, auf die der aktive Benutzer Leserechte hat. Im Zweifelsfall sollten Sie den Befehl "du" als Superuser ausführen, um sicherzugehen, dass tatsächlich alle Dateien in der Schätzung berücksichtigt werden.
Die allgemeine Syntax des Befehls lautet:
du [OPTION] [FILE]
Sowohl die Parameter, wie auch ein Dateipfad sind optional. Wird kein Dateipfad angegeben, so wird die Größe des aktuellen Arbeitsverzeichnisses geschätzt. Es können auch mehrere Dateipfade angegeben werden. Die Ausgabe erscheint dann, als ob der Befehl für jede Datei einzeln ausgeführt wurde.
Ohne Parameter wird die geschätzte Größe in Byte ausgegeben.
Zu den wichtigsten Aufrufparametern gehört -h. Mit dieser erzeugen Sie eine Ausgabe, die für Menschen leichter lesbar ist. Anstatt einer rohen Bytezahl wird Ihnen die geschätzte Größe in Gigabyte, Megabyte und Kilobyte ausgegeben.
Mit der Option -s können Sie die Ausgabe der Größen aller rekursiv ermittelten Dateien unterdrücken. Dieses ist bei besonders großen Ordnerstrukturen sinnvoll, da hier die Ausgabe aller Unterverzeichnisse meistens wesentlich länger dauert, als das Schätzen der Dateigröße.
So gibt Ihnen der Befehl:
du -sh MeinOrdner/
nur die geschätzte Größe des Ordners "MeinOrdner" aus, falls selbiger im Arbeitsverzeichnis existiert. Die Größen der beinhalteten Dateien und Ordner werden nicht mit ausgegeben.
Mit der Option --exclude=' ' können Sie Dateien mit bestimmten Dateinamen von der Schätzung ausnehmen. So gibt der Befehl
du -sh --exclude='*.avi'
die geschätzte Größe des aktuellen Arbeitsverzeichnisses an, aber nimmt alle Dateien, die auf ".avi" enden von der Schätzung aus.
Des Weiteren können Sie mit
du --max-depth=2
die Rekursionstiefe der Ausgabe angeben. Hierbei ist zu beachten, dass die Größe der Datei trotzdem über die gesamte Tiefe des Dateibaums geschätzt wird und die Option nur Auswirkungen auf die Ausgabe hat.