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
. Программы часто не ожидают такого большого количества файлов.
ext4
тип файловой системы, а не расширение файла. Не можете ли вы создать каталог для редактирования очередей? Я сомневаюсь, что эти программы могут хорошо работать с таким большим количеством файлов.