我对这个问题感到相当困惑。需要一些解释。
例子1:
pgrep string | xargs ps
例子 2:
find . | xargs grep whatever
从示例1中,我得出的结论是这样的:
搜索运行进程名称中包含特定“字符串”的进程并返回所有匹配项的进程ID,然后将这些进程ID附加到'xargs ps'命令中以获取与以下命令相同的输出:
ps <processid>
请问在这种情况下xargs具体是做什么的呢?从示例2中,我了解到它是这样的:
它会在当前工作目录递归查找一些“字符串”,那么这里'xargs'是如何起作用的呢?
我认为'xargs'会将标准输入中的数据重复追加到xargs给出的“参数”中(通常本身就是一个UNIX命令)。
根据xargs()手册:
xargs从标准输入中读取项目,由空格分隔(可以使用双引号或单引号或反斜杠进行保护),并执行命令(默认为/bin/echo)一次或多次,任何初始参数后跟从标准输入读取的项目。 忽略标准输入中的空行。