Попробуйте использовать du --block-size=1024 -s .. Может быть, вы BLOCK_SIZEнастроены на512
Echoes_86
6
На странице справки (OSX): «Если BLOCKSIZE не установлен, а опция -k не указана, счетчики будут отображаться в 512-байтовых блоках»
user4556274
Что не очень полезно, если файловая система фактически находится в блоках по 4096 байт.
DopeGhoti
Так нет ли способа иметь размер в байтах? Я думал, что -hпросто
Creak
2
echo "74216696*512" | bcoutput, 37998948352. И да, -hпреобразуется в удобочитаемую форму путем деления снова и снова на 1024. Я получил 35,3887, что очень близко к тому, что duсообщается. Что касается размера в байтах, просто используйте --block-size=1. В Linux есть -bвариант для этого, но я не знаком с OS Xdu
Сергей Колодяжный
Ответы:
23
duбез спецификатора формата вывода дает использование диска в блоках по 512 байт, а не килобайт . -kВместо этого вы можете использовать опцию для отображения в килобайтах. В OS X (или macOS, или MacOS, или Macos; в зависимости от того, что вам нравится), вы можете настроить модуль по умолчанию, установив переменную среды BLOCKSIZE(это влияет и на другие команды).
Не знал, что ... Какой интерес имеет количество блоков? Я никогда не видел, чтобы один человек использовал блоки, когда говорил о размерах на диске ...
Скрип
2
Блоки - это атомная единица файловых систем. Любой файл будет занимать целое количество блоков на диске. Блок может быть только частично заполнен фактическими данными, но весь блок выделяется для файла. Повседневное использование большинства людей не заботится о блоках, кроме как в процентах от использования к свободе. Но низкоуровневые утилиты (например fdisk, dfи du) работают в блоках, если не указано иное, потому что это единица, которой они учитываются внутри.
«Любой файл будет занимать целое количество блоков на диске». Ну, в общем, да - если ваша файловая система не использует хвостовую упаковку . Но да, блоки являются основной единицей файловой системы (хотя фактический размер блока не обязательно совпадает с размером используемого блока du.) :)
Wildcard
3
Проблема в том, что duвозвращает размер в количестве блоков 512 байт.
Чтобы иметь размер в килобайтах, вы можете использовать -kопцию, которая вместо этого использует 1024-байтовые блоки:
du --block-size=1024 -s .
. Может быть, выBLOCK_SIZE
настроены на512
-h
простоecho "74216696*512" | bc
output, 37998948352. И да,-h
преобразуется в удобочитаемую форму путем деления снова и снова на 1024. Я получил 35,3887, что очень близко к тому, чтоdu
сообщается. Что касается размера в байтах, просто используйте--block-size=1
. В Linux есть-b
вариант для этого, но я не знаком с OS Xdu
Ответы:
du
без спецификатора формата вывода дает использование диска в блоках по 512 байт, а не килобайт .-k
Вместо этого вы можете использовать опцию для отображения в килобайтах. В OS X (или macOS, или MacOS, или Macos; в зависимости от того, что вам нравится), вы можете настроить модуль по умолчанию, установив переменную средыBLOCKSIZE
(это влияет и на другие команды).источник
fdisk
,df
иdu
) работают в блоках, если не указано иное, потому что это единица, которой они учитываются внутри.du
, «блок» означает 512 байт. См. Размер блока файла - разница между stat и ls , разница между размером блока и размером кластераdu
.) :)Проблема в том, что
du
возвращает размер в количестве блоков 512 байт.Чтобы иметь размер в килобайтах, вы можете использовать
-k
опцию, которая вместо этого использует 1024-байтовые блоки:источник