xargs;如何以及何时?

xargs;如何以及何时?

到底是什么xargs

您如何使用它?
什么时候这样做才实用,或者说这样做是否合适?

答案1

xargs 从其标准输入获取输入,并使用该输入作为参数来构建命令。当以下命令只能接受有限数量的参数而您需要处理大量参数时,它非常有用。

输入通常以空格分隔。由于 xargs 经常需要处理文件名,因此有一个-0开关可以读取以空字节分隔的输入。因此,即使带有换行符和空格的文件名也能正确处理。

但是,在大多数内核下,命令(及其参数和参数)中的字符数是有限的。在这些情况下,xargs 会拆分参数并多次执行构建的命令以避免此类错误。还可以指定每次调用应有多少个参数。

答案2

的典型用法xargs是与管道一起使用并作为循环的替代。

让我们考虑一个例子,其中你有一个脚本,其中某个程序会打印出你应该删除的文件列表。你可以编写一个循环:

for i in $(program); do
    rm ${i}
done

但你也可以用 xargs 写一行代码:

program | xargs rm

相关内容