Es gibt mindestens drei Möglichkeiten, um die "Gesamtsumme aller Daten in Dateien und Unterverzeichnissen" in Bytes zu ermitteln, die sowohl unter Linux / Unix als auch unter Git Bash für Windows funktionieren. Diese sind in der Reihenfolge vom schnellsten zum langsamsten im Durchschnitt aufgeführt. Zu Ihrer docroot
Information wurden sie im Stammverzeichnis eines ziemlich tiefen Dateisystems ausgeführt ( in einer Magento 2 Enterprise-Installation mit 71.158 Dateien in 30.027 Verzeichnissen).
1.
$ time find -type f -printf '%s\n' | awk '{ total += $1 }; END { print total" bytes" }'
748660546 bytes
real 0m0.221s
user 0m0.068s
sys 0m0.160s
2.
$ time echo `find -type f -print0 | xargs -0 stat --format=%s | awk '{total+=$1} END {print total}'` bytes
748660546 bytes
real 0m0.256s
user 0m0.164s
sys 0m0.196s
3.
$ time echo `find -type f -exec du -bc {} + | grep -P "\ttotal$" | cut -f1 | awk '{ total += $1 }; END { print total }'` bytes
748660546 bytes
real 0m0.553s
user 0m0.308s
sys 0m0.416s
Diese beiden funktionieren auch, basieren jedoch auf Befehlen, die in Git Bash für Windows nicht vorhanden sind:
1.
$ time echo `find -type f -printf "%s + " | dc -e0 -f- -ep` bytes
748660546 bytes
real 0m0.233s
user 0m0.116s
sys 0m0.176s
2.
$ time echo `find -type f -printf '%s\n' | paste -sd+ | bc` bytes
748660546 bytes
real 0m0.242s
user 0m0.104s
sys 0m0.152s
Wenn Sie nur die Summe für das aktuelle Verzeichnis möchten, fügen Sie dann -maxdepth 1
zu find
.
Beachten Sie, dass einige der vorgeschlagenen Lösungen keine genauen Ergebnisse liefern, daher würde ich mich stattdessen an die obigen Lösungen halten.
$ du -sbh
832M .
$ ls -lR | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'
Total: 583772525
$ find . -type f | xargs stat --format=%s | awk '{s+=$1} END {print s}'
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option
4390471
$ ls -l| grep -v '^d'| awk '{total = total + $5} END {print "Total" , total}'
Total 968133
ls
Zeigt tatsächlich die Anzahl der Bytes in jeder Datei an, nicht die Größe des Speicherplatzes. Reicht das für Ihre Bedürfnisse aus?