macos - Mac `find` 与 Linux `find` 的区别

标签 macos shell unix find

关闭。这个问题不满足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/

相关文章:

macos - Mac OS X 上的 Clozure CL : get rid of the GUI?

c++ - C++ Windows/Mac/iOS 中的西类牙字符

linux - 如何仅使用 SED 获得第二行

linux - OpenSuse 中的 Realtek WiFi 问题

objective-c - 在 MacOS 上截取屏幕截图

mysql - Mac 上的本地主机无法工作/服务器无法连接/404 未找到/403 禁止

sql - 如何从 LINUX Box 多次执行 MS SQL PLSQL 脚本

regex - 这个 BASH shell 脚本摘录有什么作用?

shell - 如何将 TMPDIR 环境变量设置为另一个目录?

apache - 如何在可以通过 ssh 连接的服务器上打开 Web 浏览器?