Das Unix-Programm du (von englisch disk usage, deutsch etwa (Fest-)Plattennutzung oder -belegung) wird zur Anzeige der Dateigrößen aller Elemente im aktuellen Verzeichnis genutzt. Es ist Teil des POSIX-Standards für Unix- und Unix-artigen Systeme. Eine erweiterte Version findet sich in den GNU coreutils, wie sie z. B. unter Linux genutzt werden.

du in einem Terminal

Geschichte

Bearbeiten

Die erste Version von du erschien in Version 1 von AT&T-UNIX.

Wichtige Argumente

Bearbeiten

Das Argument kann eine Pfadangabe sein, ansonsten wird das aktuelle Verzeichnis als Ausgangspunkt verwendet. Die POSIX-konformen Kommandozeilenparameter orientierten sich ursprünglich an UNIX System V und wurden im POSIX-Standard IEEE 1003.1 mit BSD-Entwicklungen erweitert; gem. POSIX-Standard von 2003 werden folgende Parameter unterstützt:

  • -a zeigt auch alle Dateien und nicht nur die Summe der Blöcke pro Verzeichnis.
  • -H zeigt, wenn als Argument eine symbolische Verknüpfung angegeben ist, die Größen des Verknüpfungsziels an, nicht die Größe der symbolischen Verknüpfung selbst.
  • -k erzwingt die Ausgabe von 1024-Byte-Blöcken, wie es bei BSD-Unix der Standard ist. Der POSIX-Standard sind Blöcke à 512 Bytes wie in System V.
  • -L zeigt bei symbolischen Verknüpfungen die Größen der Ziele an, nicht die der Verknüpfung selbst.
  • -s gibt nur die Summe aller Blöcke im angegebenen Pfad aus.
  • -x bewirkt, dass nur die Dateigrößen auf dem aktuellen Gerät im angegebenen Ausgangspfad berechnet werden (englisch same device). Damit lässt sich verhindern, dass auch in Verzeichnisse eingehängte Dateisysteme verarbeitet werden.

Typische Parameter, die nur in der GNU-Version vorkommen und daher nicht POSIX-kompatibel sind:

  • --apparent-size zeigt sichtbare Größe an (sehr kleine Textdateien können auf dem Dateisystem wegen der minimalen Blockgröße größer als die tatsächliche Datenmenge sein, und z. B. auf komprimierten Dateisystemen kann die sichtbare Größe größer als die tatsächlich belegte Speichermenge sein)
  • -b zeigt die Dateigrößen statt in Kilobyte in Byte an. (GNU-spezifisch)
  • -c zeigt am Ende der Ausgabe die Gesamtgröße an.
  • -h zeigt die Größen „menschenlesbar“, also in Megabyte, Gigabyte... statt in manchmal sehr hohen Kilobyte-Zahlen an.
  • -s zeigt nur die Summe aller Dateigrößen an, nicht die einzelnen Elemente.
  • --si nutzt SI-Größen (Ein Kilobyte = 1000 Byte), also nicht KiB (= 1024 Byte), MiB...
  • --time zeigt die Zeit der letzten Änderung an.

Beispiele der GNU-Version

Bearbeiten

Zeige alle Dateien, auch in Unterverzeichnissen, in menschenlesbarer Größe an:

$ du -ah
344K	./directory/Formatierungen.pdf
352K	./directory
1,1M	./Spickzettel.pdf
32K 	./WeihnachtsWiki.png
8,0K	./Wikipediabausteine.txt
1,5M	.

Zeige alle Dateien, auch in Unterverzeichnissen, in Kilobyte an sowie den Zeitpunkt der letzten Änderung:

$ du -a --time
344 	2009-11-09 21:47 ./directory/Formatierungen.pdf
352 	2011-03-09 17:59 ./directory
1040 	2009-10-10 11:25 ./Spickzettel.pdf
32  	2009-12-24 18:56 ./WeihnachtsWiki.png
8   	2009-11-03 18:34 ./Wikipediabausteine.txt
1440 	2011-03-09 17:59 .

Zeige alle Dateien, auch in Unterverzeichnissen an, und zwar in SI-Einheiten (vergleiche erstes Beispiel) und in der sichtbaren Größe:

$ du -ah --apparent-size --si
349k 	./directory/Formatierungen.pdf
357k 	./directory
1,1M 	./Spickzettel.pdf
27k 	./WeihnachtsWiki.png
772 	./Wikipediabausteine.txt
1,5M	.

Siehe auch

Bearbeiten
Bearbeiten