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
以获得更好的理解。