EXT3: Если размер блока является 4K, почему делает ls-l, показывают размеры файла ниже этого?

Получил то, в чем я нуждался на Google.

Решение: CTRL + ALT + F1 в xubuntu, загружающем экран. Затем полученный доступ к оболочке, используемая энергия для редактирования файла и затем удалил команды, которые я вставил на нем, который препятствовал тому, чтобы lightdm запустился..

16
28.04.2014, 22:57
3 ответа
[118187]Думаю, вы получили в файле одну букву с [118586]echo a > file[118587] или [118588]vim file[118589], что означает, что вы получите эту букву и дополнительную новую строку в ней (два символа, то есть два байта). [118590]ls -l[118591] показывает размер файла в байтах, а не в блоках (точнее: длина файла [118592][118593]):[12156](обратите внимание, что [118594]cat -A[118595] отображает новые строки в виде [118596]$[118597] символа)[12157] В отличие от [118598]ls -l[118599], [118600]du[118601] покажет реальный размер, занимаемый на диске: [12158](на самом деле, [118602]du[118603] показывает размер в 1 килобайт, поэтому здесь размер 4×1024 байта = 4096 байт = 4 килобайта, что является размером блока в этой файловой системе)[12159] Чтобы [118604]ls[118605] показали это, нужно использовать опцию [118606]-s[118607] вместо/в дополнение к [118608]-l[118609]: [12160]-l[118609]: Первый столбец - это выделенный размер, опять же в единицах измерения 1 килобайт. Последний можно изменить, указав размер [118610]-блока[118611], например [12161]
20
27.01.2020, 19:48
[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].
9
27.01.2020, 19:48
[12162]ls -l[118613] - это всего лишь длинный формат. [118614]ls -ls[118615] используется для отображения размера блока. [12163]Тестирование[12164]Как видно, размер файла указан как 2B. Однако, если необходимо проверить размер блока, то необходимо выполнить следующую команду. [12165]В команде [4 выше показан размер используемого блока. Мы также можем проверить это с помощью команды [118618]stat[118619]. [12166]Теперь возникает вопрос, почему в [118620]ls -ls[118621] размер блока указан как 4, а в [118622]stat[118623] размер блока указан как 8. Причина такого поведения четко объясняется в ответе [118624]здесь [118625].[12167]Многие диски имеют размер сектора 512 байт, что означает, что любое чтение или Запись на диск передает целый 512-байтный сектор за раз. Это вполне естественным для проектирования файловых систем, где сектор не разделен. между файлами (что усложнит дизайн и повредит производительности); поэтому файловые системы обычно используют 512-байтовые куски для файлов. Поэтому традиционные коммунальные услуги, такие как [118842]ls[118843] и [118844]du[118845], указывают размеры в единицах измерения 512-байтовые куски.[12168]
5
27.01.2020, 19:48

Теги

Похожие вопросы