Відповіді:
Це розмір місця на диску, який використовується для зберігання метаінформації для каталогу (тобто таблиці файлів, що належать до цього каталогу). Якщо це 1024, це означає, що для цього використовується 1024 байти на диску (він завжди виділяє повні блоки).
"Розмір каталогів", надрукований разом із ls -l
(як і для будь-якого типу файлу), є значенням, про яке повідомляється при stat()
виклику statbuf.st_size
.
Що це st_size
означає для каталогів, повністю залежить від типу файлової системи. Якщо ви не знаєте тип файлової системи та не розумієте її поняття, ви не можете вивести нічого із значення в st_size
.
У історичній файловій системі UNIX, яку зараз зазвичай називають v7-fs
, каталоги повторювали 16 байтових записів, які містили 16-бітове число вводу та 14 байт імені файлу. "Розмір" каталогу був значущим щодо read(2)
операції і завжди збільшувався або залишався таким, як є. .
І ..
записи створюються вручну жорстко пов'язуючи їх з поточним і каталог рівня вище. Кількість посилань для здорового порожнього дівочого каталогу - 2.
У файловій системі BSD-4.2, яка з 1989 року називається (SVr4) ufs
, каталоги - це ряд записів змінної довжини, які використовують формат, який не надається як стабільний, тому командам простору користувача не дозволяється читати цей формат. Повідомлений "розмір" - це розмір у байтах, як у v7-fs, розмір зазвичай збільшується або залишається таким, який є, але нові версії файлової системи можуть зменшити розмір за певних умов - але не завжди, коли ви цього можете очікувати. Кількість посилань, повідомлених для порожнього каталогу, становить 2, як і для v7-fs
.
У WOFS
файловій системі, яку я розробив та впровадив у період з літа 1988 р. По травень 1991 р., Каталоги завжди повідомляють про "розмір" 0 і ніколи не мають типу контенту, який можна прочитати за допомогою read(2)
виклику. Це тому, що WOFS
це перша файлова система Copy-on-Write і тому, що у WOFS
файлах повідомляється про каталог, у якому вони перебувають, а не вказуються в каталозі. Якщо ви читаєте WOFS
каталог за допомогою readdir()
, ви отримуєте дані лише для передбачуваних записів, але ніколи для .
і ..
. Кількість посилань порожнього каталогу на WOFS
1 дорівнює, а вся поведінка повністю сумісна з POSIX.
У тому ZFS
, що було реалізовано після прочитання WOFS
робіт. ZFS
є файловою системою копіювання під час запису, і її автори не заперечують, що вони копіювали поняття WOFS
. Довідники по ZFS повідомити number of directory entries
по прибуттю st_size
, так повідомили «розмір» не має ніякого реального значення по відношенню до займаному дискового простору , за даними каталогу. У каталозі ZFS немає .
і ..
записів, але якщо ви телефонуєте readdir()
, ці записи підробляються та повертаються протягом перших двох операцій. ZFS - єдиний FS у списку, який не підтримує жорсткі посилання каталогів, але кількість повідомлених посилань для каталогів завжди 2. Ці два порушення в ZFS реалізовані для зменшення плутанини в історичних програмах, які не є POSIX.
Подібно до ZFS, WAFL копіює деякі, але не всі ідеї WOFS
. Нетапп WAFL
був написаний через 3 роки після WOFS
публікації газети, WAFL - це копіювання під час запису, але, схоже, WAFL повідомляє про значення "size", які можуть бути "реальним розміром каталогів" за умови, що у каталозі є вміст.
Каталог резервує 4096 байт (як мінімум) для метаданих про себе та його вміст.
Крім того, 4096 байт є блоком розподілу за замовчуванням (блоком) для файлової системи ext2 / ext3 / ext4 і для цього каталог не може бути меншим.
У різних файлових системах ви можете знайти каталоги з різними розмірами за замовчуванням, що обумовлено типовим розміром блоку файлової системи.
Розміри каталогів також можуть динамічно зростати по мірі їх заповнення, але після заповнення місця, відведеного для метаданих, не можна перерозподілити без видалення каталогу.
Каталог - це просто каталог, як-от телефонний каталог. Це просто файл із переліком номерів та назвою поруч. Кожне число посилається на файл у файловій системі (номер inode), а ім'я - ім'я файлу.
Вам потрібен простір на диску, щоб зберегти ці дані, те, як вони розподіляються та зростаються та зменшуються, залежить від файлової системи.