Trên hệ thống Ubuntu của tôi, sử dụng ext4, du -b filecung cấp kích thước tính theo byte của một tệp thực tế và du -b dircung 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ó -bopton cho 'du', bạn có thể sử dụng statthay thế. (Nếu bạn có nó :) ... Dòng nhận xét hiển thị statthay 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