Лучший способ - спроектировать макет вашего каталога, чтобы у вас никогда не было 32000 файлов в одном каталоге. На самом деле, я бы сказал, что даже 1000 файлов в каталоге слишком много.
Подход, который я обычно использую для решения этой проблемы, включает дополнительные уровни иерархии каталогов. Типичный способ - взять имена файлов, которые вы сейчас храните, в один каталог и разбить его на части, которые соответствуют вложенным каталогам. Итак, если у вас есть куча файлов, таких как
xyzzy
foo
bar
blah
вы можете хранить их как
x/xyzzy
f/foo
b/bar
b/blah
и так далее. Вы можете расширить это до нескольких уровней каталогов или использовать более одного символа для разделения подкаталогов, чтобы соотнести глубину и ширину этого подхода.
Вы, вероятно, получите предложения, что вы используете файловую систему, которая не имеет ограничения в 32 КБ. Лично, даже с такой файловой системой, я всегда использовал бы схему, как я предлагаю здесь. Практически невозможно эффективно работать с инструментами командной строки в каталогах с очень очень большим количеством файлов (даже ls
становится совершенно громоздким), и этот вид ручного исследования всегда необходим во время разработки, отладки и часто время от времени во время нормальной работы.