Saya baru-baru ini mengalami masalah ini:
find /tmp/tmp33hn25wv -type f -exec stat --format='%s' {} + | awk '{s+=$1} END {print s}'
10420224
du -bs /tmp/tmp33hn25wv
12198004 /tmp/tmp33hn25wv
Hasil berbeda secara konsisten. Semua file ditulis dalam beberapa byte ukuran blok.
Di mana du menemukan byte tambahan ini? Saya mengerti bahwa sistem file mungkin memerlukan lebih atau kurang ruang untuk menyimpan konten file, tetapi saya berharap -b
opsi itu du
berarti harus menghitung ukuran "nyata", bukan ukuran yang digunakan oleh sistem file ...
linux
bash
filesystems
du
wvxvw
sumber
sumber
du
diperhitungkan? Apakah ini struktur inode? Apakah seluruh daftar entri?find
perintah alternatif saya ?du
akan menghasilkan. Jadi, sekarang pertanyaannya bermuara pada apa yangdu
diukur ketika mengukur direktori.ls -l
daftar direktori, itu menunjukkan kelipatan dari ukuran blok: seperti yang saya katakan sebelumnya, saya menganggap ukuran yang dialokasikan diisi dengan entri kosong, sehingga ukuran yang dialokasikan dan jelas selalu sama. Perhatikan bahwa jenis file lainnya, seperti FIFO dan tautan simbolik, dapat menempati ruang disk, yang berarti bahwa perbedaannya tidak perlu kelipatan dari jumlah direktori.