关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
8 年前关闭。
Improve this question
我继承了一个脚本作为应用程序构建过程的一部分,当我在构建服务器(Ubuntu Precise)上运行它时,它运行良好,但是当我在我的 mac 上运行它时,我得到“非法选项 - t”。有问题的命令很简单,就是调用find
:
find -type f -not -path [...]
在测试中我发现它是
-type
在我的 Mac 上有问题的选项。如果我改为运行:find ./ -type f -not -path [...]
它可以工作,但两者都可以在 Linux 机器上工作(看似等效)。因此我的问题是,OSX (BSD)
find
之间是否存在显着差异?二进制和 Linux (GNU?) find
我对脚本的修改(在开始时添加 ./
路径)是否会破坏我尚未发现的任何内容?
最佳答案
standard强制路径(在您的示例中为 ./
)是强制性的。 find
在 MacOS 上遵循标准。GNU find
(Linux 上可用的那个)允许路径是可选的。如果未指定,则假定当前目录为路径。在 Linux 上, man find 说
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
(请注意,路径在
[...]
中指定,表示它是可选的。指定路径是一种很好的做法。
关于macos - Mac `find` 与 Linux `find` 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548854/