对于 Mac 来说,Linux 的 updatedb 命令对应的是什么?

对于 Mac 来说,Linux 的 updatedb 命令对应的是什么?

如果我想locate在 Linux 机器上使用该命令,我通常sudo updatedb先运行以更新数据库。我可以locate在 OS X 10.5 上运行该命令,但我找不到updatedb。mac 对应的 updatedb 是什么?

答案1

locate.updatedb在 Mac 上。

sudo /usr/libexec/locate.updatedb

更多信息请参阅location.updatedb 手册页

答案2

您可以执行此操作sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb以使该updatedb命令可用。

答案3

就我个人而言,我刚刚安装了 findutils(使用 MacPorts 或 Homebrew)。

然后你就有了 GNUlocate 和 updatedb。

如果没有 sudo,updatedb 将无法工作。

不过,我个人更喜欢每个用户都有一个 locatedb;如果你使用 sudo,其他用户就会知道你所有文件的名称/位置。

我有一个要运行的 cron 作业:

updatedb --localpaths='/Users/grogs' --output='/Users/grogs/tmp/locatedb'

在我的.zshrc .bashrc/.bashprofile中:

export LOCATE_PATH="~/tmp/locatedb"

答案4

实际上您也可以在 Mac 中使用 GNU 定位和更新。

brew install findutils --with-default-names

export PATH="$(brew --prefix findutils)/libexec/gnubin:$PATH"
export MANPATH="$(brew --prefix findutils)/libexec/gnuman:$MANPATH"

which locate

相关内容