Pada sistem Ubuntu saya, menggunakan ext4, du -b filememberikan ukuran dalam byte file yang sebenarnya, dan du -b dirmemberikan 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 -bopton untuk 'du', Anda dapat menggunakannya statsebagai gantinya. (Jika Anda memilikinya:) ... Baris komentar menunjukkan statalternatif 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