Как обновить Linux «найти» кеш

74

Как я могу обновить кеш / индекс locate? Я установил новые пакеты, и файлы явно еще не проиндексированы. Так какую команду мне нужно совершить, чтобы индексатор мог сработать?

В настоящее время я работаю над Debian Jessie (тестирование): с Linux mbpc 3.13-1-amd64 # 1 SMP Debian 3.13.7-1 (2014-03-25) x86_64 GNU / Linux

sweisgerber.dev
источник
Если ваш locateпроисходит от GNU Найти Утилиты проекта (который, если вы используете Debian Jessie, это , вероятно , является), то вы можете найти веб - сайт проекта и документацию здесь: gnu.org/software/findutils
sampablokuper

Ответы:

104

Команда:

sudo updatedb

Смотрите man updatedbдля более подробной информации.

pehrs
источник
1
насколько я помню, чтобы сделать это, вы должны быть пользователем root или sudo
Дэвид Лакатос
1
И поместите это как cron.
Florin Asăvoaie
18
Если вы не root, вы все равно не должны быть на ServerFault ...
Дженни Д.
3
@JennyD Это не ServerFault ...
Джон Хант
2
Одно замечание: эта команда выполняется в течение ~ 13 минут на Debian Stretch RC3 и жестком диске Sata, так что наберитесь терпения.
Мареки
21

На OSX это: sudo /usr/libexec/locate.updatedb

Который может быть связан с: sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb

Кажется глупым делать символическую ссылку для стандартной команды unix, но это так.

jcollum
источник
0

В Debian / Ubuntu вы можете найти, какой вариант locate установлен с:

dpkg -S locate | grep /bin/

В моем случае это:

mlocate: /usr/bin/updatedb.mlocate

Чтобы увидеть, какое задание cron отвечает, запустите:

dpkg -L mlocate | grep cron

Что в моем случае показывает:

/etc/cron.daily
/etc/cron.daily/mlocate

Чтобы обновить базу данных, запустите задание cron от имени пользователя root:

sudo /etc/cron.daily/mlocate

Если нет cronjob, и обновление b само по себе не работает, попробуйте найти установленную версию с помощью:

dpkg -L mlocate | grep /bin/

который возвращает:

/usr/bin/mlocate
/usr/bin/updatedb.mlocate
wolfmanx
источник