Это плохая идея, размещать много файлов в одной директории.
Даже если файловые системы очень эффективно работают с конкретным файлом из директории, к сожалению работа со всей директорией огромного размера разными утилитами либо сильно замедлится либо вообще будут ошибки, к примеру в linux использование масок * не будет доступно, так как они разворачиваются как аргументы командной строки, лимитированного размера, а еще очень медленно (проблемы начинаются после нескольких десятков тысяч файлов), да простейшее удаление поставит в тупик обывателя.
Классическое решение, раскидывать файлы по каталогам (при необходимости, в несколько уровней) используя в качестве имени каталогов - части хеша (любая адекватная функция, например hex от байтов crc32).
А работать с файлами придется, резервное копирование, ручной доступ например при разрешении различных ошибок в программе и прочее.
p.s. советы:
* оформи диск с такими файлами как отдельную файловую систему, в отдельном контейнере (пусть и в файле но не обязательно) и при необходимости резервное копирование делать уже целым файлом раздела, это заметно быстрее не только для hdd (тут само собой) но и для ssd, когда у тебя миллионы файлов.
* если нет денег на ssd на весь объем данных, используй с помощью bcache малый ssd как кеширующий к hdd, или хотя бы выноси журнал (для ext4) отдельно, хотя бы запись не будет сильно тормозить
* если файлы мелкие (десятки килобайт), возможно key-value база данных будет более предпочтительна (но только если это не мешает, к примеру раздавать статику веб сервером лучше само собой из файлов)
* а можно даже сколхозить
свое