Я создаю файл с именем file.o, я хочу проверить размер файла file.o.
du -h file.o ====> 4.0K
du -b file.o ====> 1120
согласно du -b file.o
, я узнаю, что file.o имеет размер 1120 байт. Но почему du -h file.o
выводит 4.0K (значит 4 * 1024 байта)?
Файл меньше по размеру, но занимает один целый 4.0K блок на диске (вы можете иметь только один файл в одном блоке). Если бы его размер был (например) 5678 байт, он занимал бы два блока по 4,0 КБ, то есть 8,0 КБ.
du -b
печатает размеры в байтах, переопределяя размер блока по умолчанию.
Чтобы добавить ответ eumiro, размер блока может быть разным для каждой файловой системы / раздела.
Вы можете найти размер блока файловой системы, используя tune2fs -l /dev/<disk> | grep '^Block size'
или stat -c "%o" <file on the disk>
.