[118211] Я думаю, что глубокий ответ следующий: [12169] Логическая длина файла и занимаемое место на диске - это разные вещи. Как показывают другие ответы, в принципе файл, созданный с двумя байтами, имеет длину два байта (показать по [118630]ls -l[118631]) и занимает 4 килобайта (показать по [118632]du[118633] или [118634]ls -ls[118635]). [12171] См: [12172]Ок, [118636] тест [118637] имеет длину 1 и размер (на диске) 4 килобайта.
Но: [12173](первая команда добавляет 8191 нулевой байт к [118638]test[118639]), теперь тест имеет длину 8192, но все еще занимает 4 килобайта на диске (в нем есть "дыра")(1). [12174] Некоторые файловые системы могут также компактно хранить короткие файлы так, чтобы они занимали меньше места путем совместного использования блоков (см., например, [118640]tail packing[118641]), а другие [118642], такие как btrfs, копируют на запись[118643], поэтому соотношение между файлом, его логической длиной и тем, сколько места он занимает на диске, является сложным. [12175]Сноски:[12176](1) [118646]На самом деле это не дыра [118647], это в конце... но все же, это работает до конца примера.[118228].
27.01.2020, 19:48
Ссылка