我继承了一个脚本作为应用程序构建过程的一部分,当我在构建服务器(Ubuntu精确地说)上运行它时,它运行得很好,但当我在我的mac上运行它时,我得到了“非法选项-- t”。有问题的命令很简单,它只需调用find
find -type f -not -path [...]在测试中,我发现是-type选项在我的Mac上有问题。如果我改为运行:
find ./ -type f -not -path [...]它可以工作,但两者在Linux机器上的工作(看似等同)。因此,我的问题是,在操作系统的find二进制文件和Linux的find之间是否有显著的差异?我对脚本的修改(在开头添加./路径)会破坏我还没有发现的任何东西吗?
发布于 2013-07-09 21:08:02
standard要求路径(在您的示例中为./)是强制的。MacOS上的find遵循该标准。
GNU find (Linux上可用的)允许路径是可选的。如果未指定,则假定当前目录为路径。在Linux上,man find说
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression](请注意,path是在[...]中指定的,表示它是可选的。
指定路径是一个很好的做法。
https://stackoverflow.com/questions/17548854
复制相似问题