在自由BSD12、新建一个虚拟机(数字海洋),我尝试使用locate
命令。
$ locate java
我收到一个错误。
定位:数据库太小:/var/db/locate.database
运行 /usr/libexec/locate.updatedb
于是我就跑了locate.updatedb
。
$ /usr/libexec/locate.updatedb
收到一条消息,抱怨权限问题。
/usr/libexec/locate.updatedb:无法创建 /var/db/locate.database:权限被拒绝
好的。以 sudo 身份运行。
$ sudo /usr/libexec/locate.updatedb
我收到安全警告。
警告
以root身份执行updatedb。这将显示所有文件名
在您的计算机上向所有登录用户显示,这是一个安全风险。
Unix 真是太有趣了。
➥ 在 FreeBSD 系统上按名称查找文件或目录的正确安全方法是什么?
答案1
答案2
run periodic
正如您所知,locate
命令使用存储文件和文件夹名称索引集合的数据库。因为您安装的 FreeBSD 是全新的,所以该数据库尚未构建。
数据库什么时候建好?当 FreeBSD 执行其常规的家务活时。每天、每周、每月都有一批这样的杂务需要自动完成。请参阅periodic
命令。
创建虚拟机后,您可能希望立即执行这些家务活。跑步:
periodic daily
periodic weekly
periodic monthly
或者将所有三个运行在一行中。
periodic daily weekly monthly
根据我的经验,这些过程每个大约需要一分钟。
➥ 特别是,weekly
似乎创建/更新locate
数据库。当您找不到已知存在的东西时,请执行run periodic weekly
。
locate
如果好奇,您可以在运行之前和之后检查数据库的存在和大小periodic
。可能在这里找到:/var/db/locate.database
您现在应该能够locate
成功使用该命令。