У меня есть простая команда find, которая должна пройти миллионы файлов на сервере и найти некоторые с заданным суффиксом. Файлы записываются и удаляются с течением времени очень часто. Мне просто интересно, есть ли способ сделать поиск быстрее. Использование локации не может быть и речи, потому что создание базы данных для местоположения будет очень дорогостоящим.quick shell find
find /myDirWithThausandsofDirectories/ -name *.suffix
На некоторых серверах эти команды занимают целые дни!
Любые мысли?
Спасибо,
Это все, что вы можете сделать. find будет перебирать каталоги для вас, но переход через «большие» каталоги в системе unix, естественно, замедляется из-за того, как хранятся записи в каталоге. –
сломать проблему? 'find /myDirWith../dira* -name * .suf & find /myDirWith../dirb* -name * .suf .... &' Также смотрите 'gnu-parallel' или' xargs -n' Good удачи! – shellter
Возможно, это хороший случай для того, чтобы иметь что-то отличное от миллионов файлов, например. База данных GDBM или «реляционные» базы данных, такие как MySQL или PostGresQL, или noSQL, такие как mangodb. –