我对此很困惑。需要一些澄清。
示例 1:
pgrep string | xargs ps
示例 2:
find . | xargs grep whatever
从示例 1 中,我收集它是这样的:
搜索“字符串”,它是运行进程名称的一部分,并将所有匹配项的进程 ID 返回到“xargs ps”-> 它只是将 ps 附加到匹配项(它们本身是进程 ID)以获得相同的输出为:
ps <processid>
有人可以解释 xargs 在这种情况下的真正作用吗?
从示例 2 中,我收集它是这样的:
它是从当前工作目录中递归搜索一些“字符串”。在这里,“xargs”究竟是如何工作的?
我认为“xargs”反复将标准输入中的数据附加到给 xargs 的“参数”(通常它本身就是一个 UNIX 命令)。
从 xargs() 手册页:
xargs 从标准输入中读取项目,由空格(可以用双引号或单引号或反斜杠保护)或换行符分隔,并执行命令(默认为 /bin/echo)一次或多次,后面跟着任何初始参数通过从标准输入读取的项目。标准输入上的空行被忽略。