根据提出的问题这里
我有几个疑问:
+ 是什么意思
find . -name "*ABC*" -exec grep -H 'XYZ' {} +
上面一行的最后一部分+是什么意思?
如何找到我自己不知道的任何 Linux 命令或语法的含义,例如上面示例中的 + 。我尝试了这个命令
man exec
,但没有从该文档中找到任何帮助。
答案1
您可以在手册页中找到所有这些信息。
我总是搜索我需要的参数,例如我刚刚打开 find 的手册页并搜索符号+
。
我能够找到:
-exec command {} + -exec 操作的此变体对所选文件运行指定的命令,但命令行是通过在末尾附加每个所选文件名来构建的;该命令的调用总数将远小于匹配的文件数。命令行的构建方式与 xargs 构建其命令行的方式大致相同。命令中只允许出现一个“{}”实例。该命令在起始目录中执行。
或许你看一下之前的条目就更清楚了:
-执行命令;执行命令;如果返回 0 状态则为 true。 find 的所有以下参数都被视为命令的参数,直到出现由 ';' 组成的参数遇到。字符串“{}”在命令参数中出现的所有位置都被当前正在处理的文件名替换,而不仅仅是在单独出现的参数中,如某些版本的 find 中那样。这两种结构可能都需要转义(使用“\”)或引用,以防止它们被 shell 扩展。有关使用 -exec 选项的示例,请参阅示例部分。对于每个匹配的文件,指定的命令运行一次。该命令在起始目录中执行。使用 -exec 操作存在不可避免的安全问题;您应该使用 -execdir 选项。
参考人发现