Не можете найти каталог, используя "locate"?

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

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

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

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)

Бежать

sudo updatedb

прежде чем найти. Это обновит базу данных.

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

В общем, когда вы не можете 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 для дальнейшего чтения.

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