Как можно высчитать сколько можно максимум создать файлов и дирректорий в одной дирректории?

Как можно высчитать сколько можно максимум создать файлов и дирректорий, например на Ubuntu в ext4?

Или ограничений нет и все ограничивается тлько размером? Типа я могу кучу создать файлов размером 1 байт в одной папке, пока память на диске не кончится?

Есть какая-то формула или команда?


Ответы (1 шт):

Автор решения: Pak Uula

Каталог в 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 килобайта.

→ Ссылка