Pada sistem Ubuntu saya, menggunakan ext4, du -b file
memberikan ukuran dalam byte file yang sebenarnya, dan du -b dir
memberikan ukuran dalam byte file (s) + overhead direktori, overhead, dalam kasus saya, kelipatan 4096 byte ..
Overhead ini meningkat seiring dengan meningkatnya jumlah file.
Catatan: walaupun file dihapus, overhead direktori tetap berada pada level yang lebih tinggi sebelum flle dihapus ..
Saya belum mencoba me-reboot, untuk melihat apakah itu kembali, tetapi dalam kedua kasus, ini berarti bahwa ukuran direktori bervariasi tergantung pada keadaan historis.
Menghitung setiap ukuran file mungkin merupakan opsi terbaik untuk nilai akurat dari total ukuran file .
Script berikut total semua ukuran file (dalam byte) ..
Untuk OS X, jika Anda tidak memiliki -b
opton untuk 'du', Anda dapat menggunakannya stat
sebagai gantinya. (Jika Anda memilikinya:) ... Baris komentar menunjukkan stat
alternatif Ubuntu untuk du -b
;
unset total
while IFS= read -r -d $'\0' rf; do
# (( total += $(stat "$rf" | sed -nre 's/^ Size: ([0-9]+).*/\1/p') ))
(( total += $(du -b "$rf" | cut -f 1) ))
done < <(find . -type f -name '*' -print0)
echo $total