该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。