На этот вопрос уже есть ответ здесь:
Я хочу найти каталог в моей системе с помощью команды "locate". Я знаю, что есть каталог с именем "bench-repo". Когда я даю следующую команду, она выдает мне следующую ошибку:
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
Почему это происходит? Как я могу найти каталог?
Двоичная база данных, используемая locate
(/var/lib/mlocate/mlocate.db
), один раз в день обновляется cron
, таким образом locate
не найдет новые файлы.
можно зафиксировать это первым выполнением sudo updatedb
sudo updatedb && locate -e bench-repo
, Это - хорошая идея использовать эти -e
флаг, таким образом, Вы только находите файлы, которые все еще существуют.
, О, и вот бонусная подсказка - можно заставить locate
давать Вам подробный список путем передачи ls -l
ls -l $(locate -e bench-repo)
Выполненный
sudo updatedb
перед определением местоположения. Это обновит базу данных.
В целом, когда Вы не можете locate
файл или это вызвано тем, что недавно созданный (после того, как последнее обновление базы данных) или потому что это не находится в путях, куда updatedb собирается искать свои записи или соответствует некоторым правилам сокращения (см. ниже):
В случае, если это - новый файл или каталог, Если у Вас есть достаточно полномочия, можно вызвать обновление:
sudo updatedb
это обновит все и только файлы и каталоги, существующие в правильных путях и не отброшенное (случай 2).
В случае, если это файл был вне путей, просканированных updatedb, или соответствовал некоторым правилам исключений, что можно изменить конфигурационный файл и обновить базу данных:
sudo pico /etc/updatedb.conf # manual update
sudo updatedb
Действительно можно найти ключи сокращенных файлов/каталогов в конфигурационном файле /etc/updatedb.conf
. Поиск PRUNENAMES
, PRUNEPATHS
или PRUNEFS
, измените, следовательно, затем обновите снова базу данных.
locate
и updatedb
Смочь к locate
файл или каталог, это должно быть на самом деле включено в Вашу mlocate базу данных, обычно хранили в /var/lib/mlocate/mlocate.db
.
Эта база данных периодически обновляется. По умолчанию это ежедневно обновляется, и Вы видите cron
файл в /etc/cron.daily/mlocate
. Если не существующий там можно искать его с locate mlocate | grep cron
и посмотрите, где это и как часто это обновляется.
Использовать man locate
и man updatedb
для дополнительных материалов для чтения.