我继承了一个脚本作为应用程序构建过程的一部分,当我在构建服务器(Ubuntu Precise)上运行它时,它运行良好,但是当我在我的 mac 上运行它时,我得到“非法选项 - t”。有问题的命令很简单,只是调用find
:
find -type f -not -path [...]
经过测试我发现它是-type
在我的 Mac 上有问题的选项。如果我改为运行:
find ./ -type f -not -path [...]
它可以工作,但两者都可以在 Linux 机器上工作(看起来等效)。因此我的问题是,OSX(BSD)之间是否存在显着差异find
二进制和 Linux(GNU?)find
以及我对脚本的修改(添加./
开始时的路径)破坏任何我还没有发现的东西?
The standard http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html强制路径 (./
在你的例子中)是强制性的。find
MacOS 上遵循标准。
GNU find
(Linux 上可用)允许路径是可选的。如果未指定,则假定当前目录为路径。在 Linux 上, man find 说
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
(请注意,路径是在[...]
表示它是可选的。
指定路径是一个好习惯。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)