xargs
2026年06月09日
xargs常常用于针对多个输入执行特定的命令。
其使用方法如下:
xargs [option ...] [command] [initial-argument ...]
[command]是要执行的命令,如果不指定则默认为echo。
[initial-argument ...]是传给命令的前半部分初始参数,默认没有;命令的后半部分参数将从标准输入逐个读取,默认以空格或换行分隔。
可以用-d选项([option ...])来指定其他分隔符。
如果逐个读取的参数并不想接在最后部分,而是想放在初始参数的中间,可以用-I选项来实现。
-I replace-str会将初始参数中的“replace-str”(不指定则默认为“{}”)替换为逐个读取的内容。
使用了-I选项的话,读取时的分隔符就只有换行了。
如果不想从标准输入读取参数,而是想从某个文件读取,可以使用-a(–arg-file)选项。 这种情况下,command命令执行时标准输入未经改动,还能用作它原本的用途。 而没有-a的情况下,在command命令执行时标准输入就会被改为从/dev/null重定向,也就是啥输入也接收不到了。
我自己几乎不用-a选项,因为xargs -a filename ...大多时候都可以用cat filename | xargs ...来等效实现。
如果想要说些什么,欢迎发邮件给我。