Команда локации звучит интуитивно. Я бы ожидал, что он найдет файлы в файловой системе. Тем не менее, он редко находит файлы в системе, которые действительно присутствуют:
$ locate ipsec.secrets
Это не дает никаких результатов даже при запуске из корневого каталога файловой системы /. Файл действительно присутствует:
$ whereis ipsec.secrets
ipsec: /usr/sbin/ipsec /etc/ipsec.secrets /etc/ipsec.d /etc/ipsec.conf /usr/lib/ipsec /usr/share/man/man8/ipsec.8.gz
Почему локация не удалось найти этот файл?
Если вы не можете locate файла, который, очевидно, существует, я вижу только две возможности:
Файл (каталог) был создан после последнего обновления базы данных локации. По умолчанию он обновляется один раз в день (/etc/cron.daily/mlocate). С достаточной привилегией вы можете исправить это принудительное обновление с помощьюsudo updatedb
. Файл (каталог) был создан по пути, не проверенному updatedb (случай более редок): вы можете найти ключи обрезанных файлов в файле конфигурации /etc/updatedb.conf , Найдите PRUNENAMES, PRUNEPATHS или PRUNEFS и измените их, затем обновите базу данных. sudo pico /etc/updatedb.conf
sudo updatedb
Конечно, даже без привилегий вы все равно можете искать файл, например, сканировать все каталоги и подкаталоги, начиная с позиции с помощью чего-то вроде
find . -name '*ipsec.secrets*' # to start from the current directory
find / -name '*ipsec.secrets*' # to start from the root # long long
. Обратите внимание: whereis имеет жестко закодированный путь (где искать), поэтому не всегда можно найти то, что вы ищете.