简介

xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。

也就是可以捕获一个命令的输出结果,将其作为参数,传递给另外一个命令。

我们可以将本来获取的长传命令分成小段传递给 echo ,使其可以逐个打印。

  1. $ cut -d: -f1 /etc/passwd | sort | xargs echo

也可以利用xargs 来接受其他命令的输出结果作为参数:

ls | grep -v file | xargs rm -rf

便可以将所有匹配之外的文件(grep -v 反选) 全部删除。

如果不用xargs 则会无法执行:

ls | grep -v file | rm -rf

因为rm -rf 需要接受的是一个名称作为参数进行删除操作,而我们使用管道符号传递的却是一个长串的信息:

$ ls | grep -v file
bwa_log
bwa_script.sh
bwa_sh
bwa_time_log
list
list_parallel
status
status_parallel

参数

-a file # 从文件中读入作为标准输入
-e flag # flag 为以空格分隔的标志,如果遇到flag xargs 则停止。
-n num # 数字,表示命令中一次使用的参数个数
-P 修改最大进程数