发现不工作

发现不工作

find命令在使用 oh-my-zsh 的 OSX 上无法按预期工作。几个例子:

$ find . -name test
find: .: Invalid argument

$ find
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
       find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

$ find --version
find: illegal option -- -
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
       find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

$ find version
find: .: Invalid argument

我不确定这里发生了什么,因为相同的示例在我的 Linux 机器上按预期工作。关于如何调试它有什么想法吗?

答案1

这是因为您尝试使用 GNU find,这是 Linux 中默认的,但 Mac OS X 附带了 BSD find,这有很多差异。

要安装 GNU 发现你需要 Homebrew,安装非常简单,只需按照http://brew.sh/

之后你可以安装findutils:

brew install findutils

有关在 Mac 上模拟 Linux 环境的更多信息和其他工具,请访问:https://apple.stackexchange.com/questions/69223/how-to-replace-mac-os-x-utilities-with-gnu-core-utilities

其他选项是阅读 BSD find 手册页并调整您的命令。只需运行man find,您将在屏幕顶部看到“BSD 通用命令手册”,确认您确实已找到 BSD。

相关内容