Сколько файлов я могу иметь в одном каталоге?

21

Этот вопрос связан с этим .

Я работаю с анимацией, которая генерирует МНОГО файлов (+/- 1 000 000), обычно хранящихся в одном каталоге. На Mac Os X было обнаружено несколько ошибок с более чем +/- 30 000 файлов, поэтому я использовал для разбивки анимации на различные каталоги.

В Ubuntu есть ли ограничение на количество файлов, которое может содержать один каталог?

H_7
источник

Ответы:

32

Ubuntu не ограничивает размер каталога, он навязывается файловой системой. Каждый файл и каталог - это так называемый индекс. Вы можете использовать, df -iчтобы проверить количество используемых inode и доступных для всех смонтированных файловых систем.

Я только что создал 1 миллион и один файл без проблем, потому что мой предел inode для моего домашнего раздела ext4 в 50 ГБ (46 ГиБ) достаточно велик.

Я использовал расширение оболочки для создания файлов в сочетании с touchутилитой:

mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}

Это создает 1000001 файлов, которые можно проверить с помощью ls | wc -l. Почему 300000..600000и нет 300001..600000? Потому что мне было лень ставить это 1 в конце.

df -i выглядит как:

/dev/sda6            3055616 1133635 1921981   38% /home

Теперь удалите тестовые файлы (это cd ..&&rm -f testзаняло гораздо больше времени, поэтому используйте rmс именами файлов):

rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f

и число используемых inode уменьшилось сразу после удаления файлов:

/dev/sda6            3055616  133634 2921982    5% /home

Обратите внимание, что даже если файловая система допускает такое большое количество файлов, хранить такие большие файлы в одном каталоге - ужасная идея. По крайней мере, используйте некоторые подкаталоги со структурой вроде f/i/l/e/filename.ext. Программы часто не ожидают такого большого количества файлов.

Lekensteyn
источник
1
ext4тип файловой системы, а не расширение файла. Не можете ли вы создать каталог для редактирования очередей? Я сомневаюсь, что эти программы могут хорошо работать с таким большим количеством файлов.
Лекенштейн
1
Конечно я могу. Я просто представляю проблемы, прежде чем добраться до них. Вы правы насчет Adobe After Effects, конечно, вылетит, но не сомневайтесь, ребята из Autodesk, они делают потрясающие куски кода ... =) похоже на использование Ferrari. Очень легко разбиться, очень быстро и мощно, потому что заблокировано на земле. Надеюсь, мой английский имеет смысл.
H_7
1
Я понимаю. Ага, ровно 17.000 репутации ^^
Лекенштейн
1
Перед удалением файлов попробуйте открыть этот каталог в Nautilus и посмотреть, что произойдет;).
Марио
1
@bzero Пожалуйста, откройте новый вопрос для этого.
Лекенстейн