run periodic

run periodic

自由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

locate是一种快速搜索文件的简单方法,因为它有自己的数据库。然而,我总是只使用find(1)。结果返回给运行它的用户,运行它的用户只能查找他们具有适当文件系统权限的文件。

find/递归搜索,因此如果要搜索每个文件系统,可以指定搜索路径。

查找名为 的所有文件和目录foo

find / -name "foo"

寻找仅有的文件名为foo

find / -type f -name "foo"

寻找仅有的目录名为foo

find / -type d -name "foo"

有很多有用的选项。查看手册页

答案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成功使用该命令。

相关内容