Trên hệ thống Ubuntu của tôi, sử dụng ext4, du -b file
cung cấp kích thước tính theo byte của một tệp thực tế và du -b dir
cung cấp kích thước tính theo byte của tệp (s) + thư mục trên đầu, trong trường hợp của tôi, là bội số của 4096 byte ..
Chi phí này tăng khi số lượng tập tin tăng lên.
Lưu ý: ngay cả khi các tệp bị xóa, chi phí thư mục vẫn ở mức cao hơn trước khi các flles bị xóa ..
Tôi chưa thử khởi động lại, để xem nó có hoàn nguyên không, nhưng trong cả hai trường hợp, điều này có nghĩa là kích thước thư mục thay đổi tùy theo hoàn cảnh lịch sử.
Kiểm đếm từng kích thước tệp có thể là tùy chọn tốt nhất cho giá trị chính xác của tổng kích thước tệp .
Tập lệnh sau tổng cộng tất cả các kích thước tệp (tính bằng byte) ..
Đối với OS X, nếu bạn không có -b
opton cho 'du', bạn có thể sử dụng stat
thay thế. (Nếu bạn có nó :) ... Dòng nhận xét hiển thị stat
thay thế Ubuntu cho 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