我想使用“find”命令并让它跟踪符号链接。但是,我需要在 RedHat 和 Mac OS X 系统上从其他代码(IDL,它没有很好的内置文件搜索功能)调用该命令。
问题是,RedHat 系统使用 GNU find 版本 4.1.20,而 mac find 是某个 BSD 版本。在 mac find 中,您使用 来find -L
跟踪符号链接。在 GNU 版本中,您使用find -follow
。两者之间似乎没有任何用于跟踪符号链接的通用选项。
针对我的机器,一种解决方法是将 更改find
为我自己的私有版本,但这对于分发代码来说不是一个可接受的选择。有人可以推荐替代方案吗?手册中是否有find
我遗漏的内容,其中说明了如何跟踪不依赖于版本的符号链接?
答案1
我只是错误地使用了 find 。
失败了:
$ find -follow . -name "t*"
find: ollow: No such file or directory
虽然这有效:
$ find . -name "t*" -follow
我认为这是因为 -f 是一个特殊的查找选项。
请注意,GNU 版本的 find 也不允许在路径前使用 -follow,但它至少会给出一个有用的错误:
find: paths must precede expression