Как мне указать locate сохранить индекс внешнего HDD?

2

Я изменил свою конфигурацию, поэтому locate также выполняет поиск по внешним жестким дискам, которые установлены в /media.

Мой /etc/updatedb.conf:

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /home/.ecryptfs /media/Win8"
PRUNEFS=...(rest is default)

мой основной жесткий диск я всегда использую

/media/rubo77/Data

если он подключен, и я запускаю updatedbего, он индексируется, но каждый раз, когда я запускаю свой компьютер с отсоединенным жестким диском, ежедневные данные /etc/cron.daily/mlocateочищают его.

Я бы тоже хотел найти файлы на отключенном устройстве. Если я не хочу, я всегда могу использовать, locate -eчто показывает только существующие файлы.

Как я могу указать locate сохранить индекс для файлов на носителе, если диск не смонтирован, чтобы я мог находить файлы на отсоединенном устройстве?

rubo77
источник

Ответы:

1

Мне кажется, у вас есть несколько вариантов здесь:

  1. Очевидно, что лучший способ сделать именно то, что вы хотите, - это попросить cron подождать, пока диск не смонтируется, прежде чем обновлять базу данных. Я представляю кого-то, кто намного лучше знаком с cron и / или bash, чем я мог бы рассказать вам, как это сделать.

  2. Что вы могли бы сделать, хотя это не совсем то, что вы хотите, это создать новую базу данных только для съемного диска . Смотрите этот тесно связанный вопрос для получения подробных инструкций о том, как это сделать. Тогда вам просто нужно вручную обновить базу данных, когда диск смонтирован.

  3. Если содержимое диска меняется не часто , есть много альтернатив. Для меня у меня много разных внешних накопителей, поэтому для каждого из них я буду часто передавать команду, например, ls -RD1в текстовый файл , а затем я могу просто использовать grep и другие инструменты, когда захочу.

Брайан З
источник
Хорошие обходные пути, но все же лучшим решением будет флаг "keep" для locate или что-то подобное. Может быть, я должен сделать запрос функции для разработчиков
rubo77
1
Это решает это для меня: я добавляю эти псевдонимы в ~/.bashrc file: alias updatedb-external='sudo updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk'иalias locate-external='locate -d ~/.externalharddisk.db:'
rubo77