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