2013-04-16 24 views
12

Wenn ich versuche, die Größe von Dateien und Verzeichnis innerhalb des Verzeichnisses zu berechnen, dauert es länger. Der Befehl, den ich verwendete, ist du -ch --max-depth=1.du -h --max-depth = 1 dauert lange

Gibt es eine andere Möglichkeit, die Gesamtgröße von Dateien und Ordnern zu berechnen?

Dank

Antwort

15

Der Befehl du ruft die Festplattennutzung aller Dateien im Verzeichnis und alle Unterverzeichnisse (rekursiv) standardmäßig aktiviert. Die von du aufgewendete Zeit bezieht sich also auf die Anzahl der analysierten Dateien. Die Optionen -s oder --summarize und beeinflussen nur die Ausgabe des Befehls (und nicht das Scannen selbst).

Einige du Optionen, die die Dateiprüfung einschränken, sind --one-file-system, --exclude und --exclude-from.

Wenn Sie nicht in die Unterordner zurückkehren möchten, können Sie stattdessen find verwenden, wodurch Sie viel besser steuern können, welche Dateien analysiert werden sollen. Die Festplattennutzung kann jedoch nicht rekursiv zusammengefasst werden.

find /path/to/dir -maxdepth 1 -printf "%k\t%p\n" 

Hinweis, dass %k immer die Festplattennutzung in 1k Blöcke zurückkehren und die gemeldete Festplattennutzung von Sparse-Dateien möglicherweise weniger oder etwas größer als die Größe Datei durch %s des ls Befehl zurückgegeben. Daher verhält sich '% k' wie der Befehl du für einzelne Dateien. Wenn Sie die Funktionen von find und du kombinieren möchten, können Sie beide durch etwas wie kombinieren.

find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=-