Команда `locate` (Linux) не показывает никаких файлов в домашнем каталоге

Система: Debian Sid

Проблема: locate Команда возвращает только те файлы, которые существуют вне моего (пользовательского) домашнего каталога. Такое поведение является новым и, вероятно, было введено через некоторое обновление пакета.

Команда вела себя нормально и возвращала имена файлов и каталогов из любой точки системы, но теперь она как-то ограничена, как описано.

Я думаю, это связано с базой данных и, возможно, с updatedb, но я не знаком с настройкой. Что я могу проверить и изменить, чтобы восстановить нормальное поведение locate?

1 ответ

locate Команда использует базу данных, подготовленную за ночь updatedb, Ваша проблема в том, что по соображениям конфиденциальности по умолчанию updatedb не сканирует каталоги, которые не доступны для чтения каждому пользователю.

Если вы хотите создать базу данных только для себя, вы можете использовать:

updatedb -l 0  --output=/home/username/.mydb.db

И искать в нем, используя:

locate -d ~/.mydb.db search-pattern

Вы можете использовать псевдонимы, чтобы сделать его более удобным:

alias lupdatedb="updatedb -l 0  --output=/home/username/.mydb.db"
alias llocate="locate -d ~/.mydb.db"

Тем не менее, как locate не найдет новые файлы без запуска updatedb во-первых, я думаю, что find Команда будет более полезной, так как она сканирует реальные файлы, а не устаревшую базу данных.

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