我正在编写一个脚本来确定是否find
支持以下原色:
- 正则表达式
- 时间
- 阿泰姆
- 带有 +/- 的 inum
到目前为止,我想出了这个:
find / -mindepth 0 -maxdepth 1 -inum +0 -exec echo "ok:inum+-" \; 2>&1 | head -n 1
仅当该命令能够理解该主节点时,它才应输出“ok:inum+-”。
问题是我依赖 find 来查找匹配项,否则它不会输出任何内容。
理想情况下,测试的主程序不应关心它发现什么,并且应始终执行回显,除非工具因错误而中止。
我意识到我可以放弃-exec echo …
并检查调用的退出代码find
,但是我将如何根据它打印“ok:”字符串?
哦,任何解决方案都必须是每个经过测试的初级的单行解决方案。
您可以检测 stderr 上是否存在任何内容:
然后:
请注意,有些谓词
find
支持,但它们之间的方式不兼容。例如,默认情况下
-regex
期望 BSD 中的基本正则表达式,而 GNU期望来自某些古老版本的.find
find
emacs
/中后缀的解释也因实现而异。
-mtime
-size
另外,上面的内容不能用于测试
-depth
//因为它们与. 是标准的,并且实现也有.-delete
-mindepth
-prune
-depth
-maxdepth
-mindepth