Что размер каталога означает в выводе 'ls-l' команда?

Я недавно нуждался в этом также и придумал это:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

Необходимо удостовериться, что клиент не настроен для запрещения аутентификации по паролю.

65
17.03.2013, 23:58
4 ответа

Это - размер пространства на диске, который используется для хранения метаинформации для каталога (т.е. таблица файлов, которые принадлежат этому каталогу). Если это, т.е. 1024 это означает, что 1 024 байта на диске используются (это всегда выделяет полные блоки), с этой целью.

45
27.01.2020, 19:32
  • 1
    и когда каталог содержит тысячи файлов, размер самого каталога, может легко быть> 10 КБ –  glenn jackman 23.02.2011, 22:28
  • 2
    @txwikinger я думаю каталоги, содержит списки inodes, не фактические имена файлов. –  Ярослав Рахматуллин 18.03.2013, 08:36
  • 3
    @ЯрославРахматуллин запись каталога состоит из inode числа и имени файла. –  200_success 01.10.2013, 10:45
  • 4
    Таким образом, "размер" dir только связан с количеством файлов внутри, не размером файлов? –  Lee 09.09.2016, 17:02
  • 5
    @Lee: Да, правильно. –  cat 06.06.2017, 01:19

Каталог является справедливым каталог, как телефонный каталог. Это - просто файл со списком чисел и имени рядом с ними. Каждое число ссылается на файл в файловой системе (inode число), и имя является именем файла.

Вам нужно дисковое пространство для сохранения тех данных, как это выделено и выращено и уменьшено, иждивенец файловой системы.

4
27.01.2020, 19:32
  • 1
    Вы могли включать фактические детали того, какие метаданные сохранены и соображения выделения блока относительно выращивания размера. это сделало бы более точный ответ вместе с уже данной хорошей аллегорией. :) –  n611x007 09.01.2014, 15:19
  • 2
    @naxa, это - иждивенец файловой системы, и даже в файловой системе (как ext4), который зависит, на которых опциях Вы включаете, таким образом, я оставил бы его как, "это - иждивенец файловой системы", вместо того, чтобы попытаться быть исчерпывающим, который не был бы очень важен для этого вопроса. спасибо –  Stéphane Chazelas 09.01.2014, 15:54

Каталог резервирует 4 096 байтов (в минимуме) для метаданных о себе и его содержании.

Кроме того, 4 096 байтов единица выделения по умолчанию (блок) для ext2/ext3/ext4 файловой системы, и для этого каталог не может быть немного меньшим.

В различных файловых системах Вы могли бы найти каталоги с различными размерами по умолчанию, который происходит из-за размера блока по умолчанию файловой системы.

Размеры каталога могут также вырасти динамично, поскольку они заполняются, но когда-то заполнились, пространство, зарезервированное для метаданных, не может быть перераспределено без удаления каталога.

13
27.01.2020, 19:32
  • 1
    К каким метаданным Вы обращаетесь? детали –  Stéphane Chazelas 02.10.2012, 00:27
  • 2
    зависят от файловой системы, но обычно включает метаданные как имя файла, inode число, тип файла (файл, dir, первым прибыл, первым обслужен, сокет, узел устройства, символьная ссылка, и т.д.), владелец, группа, полномочия, атрибуты, ACLs, цели символьной ссылки. калибр –  cas 02.10.2012, 00:58
  • 3
    @CraigSanders, каталог содержит имя объекта и соответствующее inode число только. inode содержит тип объекта, владельца/группы, полномочий, ссылки на то, везде, где ACLs и расширенные атрибуты сохранены... Что-либо еще вызовет серьезную поломку семантики файловой системы POSIX. –  vonbrand 15.03.2013, 17:05

«Размер каталога», напечатанный с помощью ls -l , является (как и для любого типа файла) значением, сообщаемым stat () в statbuf.st_size .

То, что этот st_size означает для каталогов, полностью зависит от типа файловой системы. Если вы не знаете тип файловой системы и не понимаете его концепции, вы не сможете ничего вывести из значения в st_size .

  • В исторической файловой системе UNIX, которая в настоящее время обычно называется v7-fs , в каталогах повторялись 16-байтовые записи, содержащие 16-битный номер inode и 14 байтов имени файла. «Размер» каталога имел значение по отношению к операции read (2) и всегда увеличивался или оставался неизменным. . Записи и .. создаются путем ручной жесткой привязки их к текущему и каталогу уровнем выше. Количество ссылок для нормального пустого девичьего каталога равно 2.

  • В BSD-4.2, которая с 1989 года (SVr4) называется ufs , каталоги представляют собой серию записей переменной длины, которые используют формат, который не является стабильным, поэтому командам пользовательского пространства не разрешено читать этот формат. Сообщаемый "размер" - это размер в байтах, как в v7-fs, размер обычно увеличивается или остается неизменным,но более новые версии файловой системы могут уменьшать размер при некоторых условиях - но не всегда, когда вы этого можете ожидать. Счетчик ссылок для пустого каталога равен 2, как в v7-fs .

  • В WOFS , файловой системе, которую я разработал и реализовал в период с лета 1988 г. по май 1991 г., каталоги всегда сообщают «размер» 0 и никогда не имеют типа содержимого, которое может быть прочитано с помощью чтения . (2) звонок. Это связано с тем, что WOFS является первой файловой системой копирования при записи, и потому, что в файлы WOFS сообщают каталог, в котором они находятся, а не перечисляются в каталоге. Если вы читаете каталог WOFS с помощью readdir () , вы получаете данные только для предполагаемых записей, но никогда для . и .. . Счетчик ссылок пустого каталога на WOFS равен 1, и все поведение полностью соответствует POSIX.

  • В ZFS это было реализовано после прочтения статей WOFS . ZFS - это файловая система с копированием при записи, и ее авторы не отрицают, что они скопировали концепции из WOFS . Каталоги в ZFS сообщают количество записей каталога в st_size , поэтому сообщаемый «размер» не имеет реального значения в отношении занятого дискового пространства из данных каталога. Нет . и .. записи в каталоге ZFS, но если вы вызываете readdir () , эти записи подделываются и возвращаются для первых двух операций.ZFS - единственная FS в списке, которая не поддерживает каталоги с жесткой связью, но сообщаемое количество ссылок для каталогов всегда равно 2. Эти два нарушения в ZFS реализованы для уменьшения путаницы в исторических программах, не относящихся к POSIX.

  • Подобно ZFS, WAFL копирует некоторые, но не все идеи из WOFS . Netapp WAFL был написан через 3 года после публикации статьи WOFS , WAFL - это копирование при записи, но WAFL, похоже, сообщает значения «размера», которые могут быть «реальным размером каталога. "при условии, что в каталоге есть контент.

14
27.01.2020, 19:32

Теги

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