каталог с миллионами файлов: эффективный способ вывода списка файлов (linux / ext4)

каталог с миллионами файлов: эффективный способ вывода списка файлов (linux / ext4)

К сожалению, у меня есть приложение, которое помещает миллионы файлов в один плоский каталог (без каких-либо подкаталогов)

Если я выполняю ls или find в указанном каталоге, то ls или find потребляют несколько гигабайт оперативной памяти.

Полагаю, причина в том, что ls и find считывают все файлы одного каталога в оперативную память.

У меня такой вопрос.

Есть ли способ вывести список файлов этого каталога, не занимая при этом много памяти?

Любое решение (специальные опции / различные команды / программа на языке C для компиляции / специальный модуль Python) было бы интересно.

решение1

Есть:

Команда lsне только считывает имена файлов, но и fstat()s каждый файл. Если вы используете последовательность, opendir() / readdir() / close()вы сделаете гораздо лучше.

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

Связанный контент