Неправильный вывод du?


12

Я думаю, что моя команда запуталась.

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

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

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

Я попытался дать LANG=Cи перепроверить результат в электронной таблице. Похоже, -h уже выводит с использованием степеней 1000 (--si), а --si дает неправильный ответ. Я думаю, что правильный ответ должен быть 5.7G для -h и 6.1G для --si. Так что здесь происходит?

% 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
Пожалуйста, включите фактические команды. Что ...представляют? Кажется, вы дважды выполнили одну и ту же команду и получили разные результаты, так? Вы читали объяснение модификаторов размера в man du?
Terdon

Ответы:


18

Повторите свои тесты, используя --apparent-sizeпереключатель.

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

выдержка из страницы руководства

--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
Ах, очевидно, что -b эквивалентно '--apparent-size --block-size = 1'. Я пропустил это. Использование 'du -shc --apparent-size' теперь правильно дает 5.7G. Спасибо!
Джерри Lufwansa

@GerryLufwansa - да, когда вы начинаете смешивать различные файловые или смонтированные CIFS-системы, это становится действительно заметным. Я всегда использую либо -bили --apparent-size.
SLM

... и разница может стать огромной с системами HSM, где перенесенные файлы сообщают 0 (или что-то вроде нескольких КБ) без --apparent-size.
Ансгар Эстерманн

Любое решение для duэтого поставляется с Mac OS X?
Алек Джейкобсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.