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

Отключить управление питанием в Fedora 12
Проводной беспроводной мост в Linux
Как настроить нижнюю панель XFCE?
Почему команда 'ls' в linux возвращает некоторые результаты в [squarebrackets].банку?
Как обновить CRL автоматически?
Как получить grub для загрузки Windows со второго жесткого диска
Не удается изменить размер (увеличить) раздела Linux
Как я могу восстановить доступ SSH к удаленному серверу после изменения AllowUsers?
Почему клавиши Esc, Ctrl, Shift и Alt не работают в сеансе SSH с моего ПК с Windows?
Как установить драйверы для GTX 1050 ti в Linux?
В чем разница между " su " и " su -"
letsencrypt/certbot systemd таймер / служба не работает на Ubuntu 18.04
Как отбросить трафик, прежде чем он попадет в существующее правило iptables conntrack?
Обновление разрешения экрана в centos7 в Hyper-V
Беспроводное подключение к интернету последовательно продолжает выпадать после нескольких минут использования на Linux Mint

Почему размер директории всегда 4096 байт в unix?

Я уверен, что файл каталога имеет гораздо меньше информации, чем 4096 байт. Я знаю, что размер сектора 4096 байт. Но обычные файлы меньше, чем существуют.

Почему Unix резервирует 4096 байт для каждой папки?

5
задан fixer1234
источник

4 ответов

это начальный размер, необходимый для хранения метаданных о файлах, содержащихся в этом каталоге (включая имена). Первоначальное распределение равно размеру одного сектора, но при необходимости может увеличиваться. Когда выделяется, пространство не освобождается, если файлы удаляются, чтобы уменьшить фрагментацию.

например:

$ mkdir testdir
$ cd testdir
$ ls -ld .
drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:28 ./
$ for ((i=0; i<1000; i++)); do touch some_longish_file_name_$i; done
$ ls -ld .
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
$ rm some_longish_file_name_*
$ ls -ld .
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 ./
$ cd ..
$ ls -ld testdir
drwxr-xr-x 2 matthew matthew 36864 2007-12-03 20:29 testdir/
$ rmdir testdir ; mkdir testdir
$ ls -ld testdir
drwxr-xr-x 2 matthew matthew 4096 2007-12-03 20:29 testdir/

source

27
отвечен harrymc 2010-05-19 11:54:28
источник

иногда 4096 байт является наименьшей единицей выделения для некоторых файловых систем. Поэтому в каталоге 4096.

то же самое относится к файлам. Хотя некоторые файлы могут меньше, чем 4096, на самом деле они берут не менее 4096 хранения с диска.

10
отвечен Pablo Santa Cruz 2010-05-19 11:50:22
источник

4096 зарезервировано для уменьшения фрагментации, так как часто фактический размер содержащихся метаданных будет колебаться в зависимости от содержимого каталога. Если он постоянно растет и сжимается (скажем, он содержит файлы журналов или динамическое содержимое) с течением времени, это может повредить производительности. Вероятно, это не произойдет с одной папкой, но по всей файловой системе это будет быстро складываться.

4
отвечен MDMarra 2010-05-19 11:53:56
источник

Это зависит от файловой системы. На ext2 / 3 / 4 это" is " 4096. На reiserfs это может быть 9608 (my $HOME) 1032 (/tmp) или 48 (некоторые из реж в /tmp).

по умолчанию на блоке ext2/3/4 стоит 4096-и файл не может взять меньше. Если файл меньше, он все равно занимает целый квартал. Поскольку бессмысленно спрашивать о логическом размере каталога, и эта информация, вероятно, не находится на диске в любом случае, и она должна сообщить что-то, что она сообщает размер блока раз количество блоков, принятых т. е. физическое пространство, которое было занято.

3
отвечен Maciej Piechotka 2010-05-19 12:05:13
источник

Другие вопросы linux shell unix