Sản lượng sai của du?


12

Tôi nghĩ rằng lệnh du của tôi là nhầm lẫn.

% du -shc DIR ...
...
6123941496      total

% du -shc DIR ...
...
6.1G    total

% du -sc --si DIR ...
...
6.6G    total

Tôi đã thử đưa ra LANG=Cvà kiểm tra lại kết quả trong bảng tính. Có vẻ như -h đã xuất ra bằng cách sử dụng quyền hạn 1000 (--si) và --si đưa ra câu trả lời sai. Tôi nghĩ câu trả lời đúng phải là 5,7G cho -h và 6,1G cho --si. Vậy chuyện gì xảy ra ở đây?

% du --version
du (GNU coreutils) 8.20
...

% uname -a
Linux XXX 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

3
Vui lòng bao gồm các lệnh thực tế. Làm những gì ...đại diện? Bạn dường như đã chạy chính xác cùng một lệnh hai lần và đã nhận được đầu ra khác nhau, có phải vậy không? Bạn đã đọc giải thích về các sửa đổi kích thước trong man du?
terdon

Câu trả lời:


18

Lặp lại thử nghiệm của bạn bằng cách sử dụng công --apparent-sizetắc.

$ du -shc --apparent-size DIR ...

đoạn trích từ trang du man

--apparent-size
       print  apparent sizes, rather than disk usage; although the apparent size is
       usually smaller, it may be larger due to holes in (`sparse') files, internal 
       fragmentation, indirect blocks, and the like

1
À, vậy rõ ràng -b tương đương với '--apparent-size --block-size = 1'. Tôi bỏ lỡ điều đó. Sử dụng 'du -shc --apparent-size' bây giờ chính xác mang lại 5,7G. Cảm ơn!
Gerry Lufwansa

@GerryLufwansa - yeah khi bạn bắt đầu trộn vào các hệ thống tập tin khác nhau hoặc gắn CIFS, nó trở nên thực sự đáng chú ý. Tôi luôn luôn sử dụng -bhoặc --apparent-size.
slm

... Và sự khác biệt có thể trở nên rất lớn với các hệ thống HSM, trong đó các tệp được di chuyển báo cáo 0 (hoặc một cái gì đó giống như một vài kB) mà không có --apparent-size.
Ansgar Esztermann

Bất kỳ giải pháp dunào đi kèm với Mac OS X?
Alec Jacobson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.