> locate - дубовая лопата, которая кроме имени больше ничего искать не умеет.Зато он это делает хорошо. Лучше всех, я б сказал (с той поправкой, что если говорить про «mlocate», а не про «locate»).
> И до updatedb не видит изменений в ФС. Ешьте сами.
Либо индексируй и ищи по индексам, либо не индексируй и ищи в сырую. Второй вариант крайне идиотский для такой задачи.
Теперь по поводу «индексируй»:
- либо запускай по cron-у;
- либо индексируй с использованием inotify (и ему подобных);
- либо доиндексируй перед поиском.
Использовать inotify (и ему подобные) по всей файловой системе — IMHO, бред из соображений производительности всей системы.
Остаётся два варианта, запускать по планировщику, либо перед поиском. В случае «mlocate» вам доступны оба варианта. Если ищите старый файл, ничего доиндексировывать не нужно, если новый — нужно (однако процедура это быстрая). Если же ваш nepomuk делает как-то иначе, то это объясняет, почему он столь надолго загружал систему на ноуте моей девушки, что пришлось его вырубить к чёрту. Притом этим nepomuk-ом так ниразу и не воспользовались, всё что он успел сделать — это тупо пожрать весь HDD-IO на протяжении какого-то времени.
Пример с существенно загруженного сервера:
# time updatedb
real 0m17.074s
user 0m3.083s
sys 0m13.936s
# locate -S
Database /var/lib/mlocate/mlocate.db:
1,154,091 directories
8,305,221 files
Хотя не понятно, почему «nepomuk» сравнивается с «*locate», ибо они выполняют тупо разные задачи. Однако я согласен с комментатором выше, интеграция с уже рабочими решениями намного целесообразнее, чем реализация новых; тем более что, IMHO, у «mlocate»-а количество и качество пользователей выше, чем у «nepomuk»-а:
> Лучше б нормально интегрировали locate и recoll. Востребовнные и давным-давно рабочие технологии, в отличие от всех этих семантических поделок.
P.S.: Вводишь в гугле «nepomuk » и видишь 4 варианта автодополнения, первые 2 из которых:
- nepomuk что это
- nepomuk отключить