Answers:
“使用从标准输入中读取的名称”表示xargs
将数据输入到其标准输入中,将其拆分,然后使用其运行其自变量中给出的命令。默认情况下,它以空格或换行符分隔,并一次运行echo
带有尽可能多的参数。
-0
您示例中的选项指示xargs
将其输入拆分为空字节,而不是空白或换行符。具有组合find
的-print0
,这允许包含空白或换行符的文件名被适当地处理。
该-I
选项更改了构建新命令行的方式。与其一次添加尽可能多的参数,不如xargs
一次从其输入中取一个名称,查找给定的标记({}
此处)并将其替换为名称。
在您的示例中,{}
给定的命令模板中不存在xargs
,因此实际上xargs
指示echo
它不带任何参数运行,对于赋予它的每个文件名一次find
。要查看此内容,请删除wc
:
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo
您会看到一系列空白行...与
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo {}
和
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0 echo
和
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0
以获得更好的理解。