2016-11-24 2 views
0

Когда я запустил этуПочему число блоков отображает количество блоков в 4096-байтовых блоках, даже если оно говорит 1024?

du -k * 

Я ожидал, что выход для каждого файла будет ceil(filesize/1024) но выход был ceil(filesize/4096) * 4. Почему это?

Описание -k в $ man du: Количество блоков отображения в 1024-байтных (1-Кбайт) блоках.

Я использую OS X, если это имеет значение.

ответ

0

Файловая система выделяет пространство в единицах 4K (4096 байт). Если вы создаете 1 байтовый файл, файловая система будет выделять 4 Кбайт памяти для хранения файла.

Команда du -k сообщает общее хранилище, используемое файловой системой. Итак, du -k сообщает, что файловая система использует 4K пространства для этого файла.

+0

Так что же означает это описание? ** Количество блоков отображения в 1024-байтных (1-Кбайт) блоках. ** – Taylan

+1

Это означает, что 'du' будет округлять пространство до единиц 1024. Если вы работаете в файловой системе с меньшей единицей распределения (скажем, 512 байт), то 'du' будет округлять до 1024 байтовых единиц. Например, если файловая система сообщила, что в файле используется 512 байт, 'du -k' округляет и сообщает файл с использованием 1 КБ. Это то, что делает 'du -g'. Размер файла может составлять 123 байта, как сообщает 'ls'. 'du -k' сообщит об этом как 4K, как объяснялось выше. 'du -g' будет округлять это до ближайшего ГБ и сообщать об этом с использованием 1 ГБ. –

Смежные вопросы