
Мне нужно найти огромные файлы на сервере Linux, где много людей будут обрабатывать огромные файлы, и будет происходить загрузка данных. Команда "find" занимает больше времени для выдачи вывода. Есть ли другой способ ускорить результат моей команды, кроме упрощения пути поиска?
решение1
Вы можете использовать dnotify
. Вы не указали точно, что вы хотите сделать, поэтому я не могу сказать более конкретно, но я замечу, чтоСтраница dnotify Manсостояния:
dnotify - Выполнение команды при изменении содержимого каталога
Например, эта команда
dnotify -CD -r /home/my_name -e echo change to {}
будет выводить «изменить на», а затем имя измененного файла каждый раз, когда файл создается или удаляется внутри /home/my_name или любого из его подкаталогов.
Вы можете объединить это с ранее созданным списком существующих файлов, чтобы поддерживать полностью актуальный список файлов, который можно будет читать вместо запуска поиска.
решение2
ИспользоватьApache Lucene 4.6.0илисервер ownCloud 5.
Apache Solr 4.6.0 для быстрого полнотекстового поиска персональных данных.
Альтернатива бесплатной платформе Microsoft Windows:SharePoint 2013 Основа.
решение3
1) найти человека.
2) Если у вас относительно немного или не очень важных изменений: создайте кэш из вашей иерархии каталогов с помощью find -type f intoa file. Один раз. Позже вы можете выполнить grep в этом файле, что намного быстрее.