到底是什么xargs
?
您如何使用它?
什么时候这样做才实用,或者说这样做是否合适?
答案1
xargs 从其标准输入获取输入,并使用该输入作为参数来构建命令。当以下命令只能接受有限数量的参数而您需要处理大量参数时,它非常有用。
输入通常以空格分隔。由于 xargs 经常需要处理文件名,因此有一个-0
开关可以读取以空字节分隔的输入。因此,即使带有换行符和空格的文件名也能正确处理。
但是,在大多数内核下,命令(及其参数和参数)中的字符数是有限的。在这些情况下,xargs 会拆分参数并多次执行构建的命令以避免此类错误。还可以指定每次调用应有多少个参数。
答案2
的典型用法xargs
是与管道一起使用并作为循环的替代。
让我们考虑一个例子,其中你有一个脚本,其中某个程序会打印出你应该删除的文件列表。你可以编写一个循环:
for i in $(program); do
rm ${i}
done
但你也可以用 xargs 写一行代码:
program | xargs rm