Максимальное количество inodes в каталоге? [закрытый]

Я нашел разницу между двумя API и не имеет никакого отношения к тому факту, что одна из учетных записей связана с Google+ или нет

People API будет отображать только контакты, находящиеся под контакт "My contacts", в то время как Contacts API также отобразит другие списки контактов ("Other contacts", "Most contacts", ...)

34
задан Karlo 1 December 2015 в 10:36
поделиться

9 ответов

df -i должен сказать Вам количество inodes, используемого и свободного в файловой системе.

54
ответ дан Tim Cooper 27 November 2019 в 16:16
поделиться

Попробуйте ls -U или ls -f.

ls, по умолчанию, сортирует файлы в алфавитном порядке. Если у Вас есть 2 миллиона файлов, тот вид может занять много времени. Если ls -U (или возможно ls -f), то имена файлов будут сразу распечатаны.

17
ответ дан user1392398 27 November 2019 в 16:16
поделиться

Нет. Пределы Inode на файловую систему, и решенные во время создания файловой системы. Вы могли поражать другой предел, или возможно 'ls' просто не выполняет это хорошо.

Попытка это:

tune2fs -l /dev/DEVICE | grep -i inode

Это должно сказать Вам всем, что виды inode связали информацию

10
ответ дан Jordi Bunster 27 November 2019 в 16:16
поделиться

Максимальный размер каталога зависим от файловой системы, и таким образом точный предел варьируется. Однако наличие очень больших каталогов является плохой практикой.

необходимо считать создание каталогов меньшим путем сортировки файлов в подкаталоги. Одна общая схема состоит в том, чтобы использовать первые два символа для подкаталога первого уровня, следующим образом:

${topdir}/aa/aardvark
${topdir}/ai/airplane

Это работает особенно хорошо при использовании UUID, GUID или значений хэш-функции содержания для именования.

3
ответ дан Charles Duffy 27 November 2019 в 16:16
поделиться

Как отмечено Rob Adams, ls сортирует файлы прежде, чем отобразить их. Обратите внимание, что при использовании NFS сервер NFS будет сортировать каталог прежде, чем отправить его, и 2 миллиона записей могут занять больше времени, чем тайм-аут NFS. Это делает каталог unlistable через NFS, даже с флагом-f.

Это может быть верно для других сетевых файловых систем также.

, В то время как нет никакого вынужденного предела количеству записей в каталоге, это - хорошая практика для имения некоторого предела записям, которые Вы ожидаете.

1
ответ дан mpez0 27 November 2019 в 16:16
поделиться

Можно ли получить реальное количество количества файлов? Это падает очень около 2^n граница? У Вас могла просто заканчиваться RAM для содержания всех имен файлов?

я знаю, что в окнах, по крайней мере, производительность файловой системы отбросила бы существенно, поскольку количество файлов в папке повысилось, но я думал, что Linux не пострадал от этой проблемы, по крайней мере, при использовании командной строки. Бог помогает Вам, при попытке заставить что-то как наутилус открывать папку с который много файлов.

я также задаюсь вопросом, куда эти файлы прибывают из. В состоянии Вы для вычисления имен файлов программно? Если это так, Вы могли бы быть в состоянии записать небольшую программу для сортировки их во многие подпапки. Часто список названия определенного файла предоставит Вам доступ, где попытка искать имя перестанет работать. Например, у меня есть папка в окнах приблизительно с 85 000 файлов, где это работает.

, Если эта техника успешна, Вы могли бы попытаться найти способ сделать этот вид постоянным, даже если это просто запускает эту небольшую программу как задание крона. Это будет работать особенно хорошо, если можно отсортировать файлы по дате где-нибудь.

0
ответ дан Joel Coehoorn 27 November 2019 в 16:16
поделиться

Если Вы не получаете сообщение об ошибке, ls работает, но очень медленно. Можно попытаться смотреть на просто первые десять файлов как это:

ls -f | head -10

, Если Вы собираетесь должны посмотреть на детали файла некоторое время, можно поместить их в файл сначала. Вы, вероятно, хотите отправить вывод в различный каталог, чем тот, который Вы перечисляете в данный момент!

ls > ~/lots-of-files.txt

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

ls | xargs -I thefilename mv thefilename ~/some/other/directory

Вы могли объединить это с головой для перемещения меньшего числа файлов.

ls | head -10000 | xargs -I x mv x /first/ten/thousand/files/go/here

можно, вероятно, объединиться ls | head в сценарий оболочки к этому, разделит файлы на набор каталогов с управляемым количеством файлов в каждом.

0
ответ дан 3 revs, 2 users 87% 27 November 2019 в 16:16
поделиться

Для NetBackup двоичные файлы, которые анализируют каталоги в клиентах, выполняют некоторый тип перечисления этих тайм-аутов по огромному количеству файлов в каждой папке (около миллиона на папку, рабочий каталог SAP).

Мое решение было (как пишет Чарльз Даффи в этой ветке) реорганизовать папки во вложенные папки с меньшим количеством архивов.

0
ответ дан 27 November 2019 в 16:16
поделиться

Другой вариант - найти :

найти. -name * -exec somcommands {} \;

{} - это абсолютный путь к файлу.

Преимущество / недостаток в том, что файлы обрабатываются один за другим.

найти. -name *> ls.txt

выведет все имена файлов в ls.txt

find. -name * -exec ls -l {} \; > ls.txt

будет печатать всю информацию в форме ls для каждого файла в ls.txt

-1
ответ дан 27 November 2019 в 16:16
поделиться
Другие вопросы по тегам:

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