Не можете найти каталог, используя "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 будет искать свои записи или соответствует некоторым правилам сокращения (см. ниже):
Если это новый файл или каталог, если у вас достаточно прав, вы можете принудительно обновить:
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
для дальнейшего чтения.