Не удается найти каталог с помощью команды "locate"? [duplicate]

На этот вопрос уже есть ответ здесь:

Я хочу найти каталог в моей системе с помощью команды "locate". Я знаю, что есть каталог с именем "bench-repo". Когда я даю следующую команду, она выдает мне следующую ошибку:

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

Почему это происходит? Как я могу найти каталог?

10
задан 19 July 2016 в 01:01

3 ответа

Двоичная база данных, используемая 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)
12
ответ дан 23 November 2019 в 04:23

Выполненный

sudo updatedb

перед определением местоположения. Это обновит базу данных.

2
ответ дан 23 November 2019 в 04:23

Две причины два действия

В целом, когда Вы не можете locate файл или это вызвано тем, что недавно созданный (после того, как последнее обновление базы данных) или потому что это не находится в путях, куда updatedb собирается искать свои записи или соответствует некоторым правилам сокращения (см. ниже):

  1. В случае, если это - новый файл или каталог, Если у Вас есть достаточно полномочия, можно вызвать обновление:

    sudo updatedb 
    

    это обновит все и только файлы и каталоги, существующие в правильных путях и не отброшенное (случай 2).

  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 для дополнительных материалов для чтения.

5
ответ дан 23 November 2019 в 04:23

Другие вопросы по тегам:

Похожие вопросы: