`locate` 命令 (Linux) 不显示主目录中的任何文件

`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命令会更有用,因为它会扫描真实文件而不是过时的数据库。

相关内容