Определять местоположение команда звучит интуитивной. Я ожидал бы, что это определит местоположение файлов в файловой системе. Однако это редко находит файлы в системе, которые действительно присутствуют:
$ 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
Почему был, располагаются не могущий найти этот файл?
updatedb
только выполнения один раз в день, необходимо выполнить его с полномочиями пользователя root найти недавние файлы.
Если Вы не можете 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
имеет трудно кодированный путь (где искать), так может не всегда находить то, что Вы ищете.
Я был несколько ленив и не хотел запускать sudo updatedb
, и, поскольку у меня есть компьютер, который может работать на меня, он запускает sudo updatedb
каждые 15 минут, так что мне не нужно.
Используйте sudo crontab -e
и найдите эту строку:
# m h dom mon dow command
вставьте под ней:
*/15 * * * * /usr/bin/updatedb
Затем нажмите Ctrl + O , чтобы сохранить файл. (напишите O ut), а затем Ctrl + X на e X it.
Если вы только что создали файлы за последние 15 минут, вам все равно нужно будет запустить:
sudo updatedb
... чтобы вручную обновить индексы, используемые командой locate
.
Мое решение было очень быстро (но, возможно, не оптимально, так как ваша команда sudo updatedb
займет больше времени). Однако вы больше не пропустите ни один файл, даже если у вас несколько разделов (мне это удобно).
Я открыл файл конфигурации updated
(вам нужны права sudo
для сохранения следующего файла):
nano /etc/updatedb.conf
Затем я прокомментировал (добавляя #
в начале строки) все строки, начинающиеся с:
PRUNENAMES
PRUNEPATHS
PRUNEFS
Сохраните файл (CTRL+O
, ENTER
, CTRL+X
).
Надеюсь, это поможет кому-то еще.