Команда `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
Команда будет более полезной, так как она сканирует реальные файлы, а не устаревшую базу данных.