Как можно высчитать сколько можно максимум создать файлов и дирректорий в одной дирректории?
Как можно высчитать сколько можно максимум создать файлов и дирректорий, например на Ubuntu в ext4?
Или ограничений нет и все ограничивается тлько размером? Типа я могу кучу создать файлов размером 1 байт в одной папке, пока память на диске не кончится?
Есть какая-то формула или команда?
Ответы (1 шт):
Каталог в ext4 - это файл либо в формате линейного списка, либо в формате бинарного дерева
Предположим, ваш диск находится в разделе /dev/sdb1
. Выполните команду sudo tune2fs -l /dev/sdb1 | grep 'Filesystem features'
Если в выдаче есть строка dir_index
, значит в вашей файловой системе каталоги представлены двоичным деревом.
В обоих случаях каталоги содержат отображение name -> inode
. В каждом каталоге имя ..
ссылается на inode
родительского каталога (hard link). По-умолчанию ext4
дозволяет только 64999 жестких ссылок на inode, поэтому при некоторых конфигурациях ext4 в каталоге может быть не более 65 тысяч подкаталогов. Но если в списке Filesystem features
есть параметр dir_nlink
, то в файловой системе разрешено любое количество жестких ссылок на отдельный inode, и тем самым снимается ограничение на число подкаталогов.
Так что если у вас в параметрах файловой системы есть dir_index
и dir_nlink
, то ваши каталоги могут содержать любое количество файлов и подкаталогов
PS1. Есть естественное ограничение на число файлов в каталоге: inode представлен 32-х битным числом, поэтому всего может быть не более 4 млрд файлов и подкаталогов. Это жесткий лимит на число файлов в файловой системе ext4.
PS2. Файл размером 1 байт создать затруднительно. Файл занимает минимум один блок, и скорее всего это будет 4 килобайта.