xargs
由于很多命令都是命令行参数的形式
xargs命令主要是用与将标准输出转换成命令行参数的形式
由于需要标准输出,这个命令也经常配合管道运算符'|'使用
例如
echo "file1 file2 file3" | mkdir
上面的那段命令类似于mkdir file1 file2 file3
xargs基本格式
xargs [-options] [command]
如果不加[command]
默认为 echo
参数
-d参数分隔
默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。-d参数可以更改分隔符。但是-d只能是字符
$ echo -e "a\tb\tc" | xargs -d "\t" echo
a b c
-L num 参数
xargs
可以将标准输入作为命令行参数,每个命令行参数分别执行一次命令
其中-L num
表示将标准输入中的每num
行作为每个命令的分割
$ echo -e "a\nb\nc" | xargs -L 1 echo
a
b
c
-n num 参数
和-L num
差不多只不过使用空格作为分割
$ echo {0..9} | xargs -n 2 echo
0 1
2 3
4 5
6 7
8 9
-I replace-str 参数
设置一个replace-str
作为标记作为命令行参数,之后将换成按空行分割的标准输出作为replace-str的替换,可以达到类似每个命令行参数执行一次命令的效果
-P max-procs 参数
上面我们可以看到我们能将标准输入分割成多个命令行参数,每个命令行参数可以当一个命令的命令行参数执行。默认是一个线程串行执行,加上-P max-procs
之后我们可以开多个进程并行的执行。
此处评论已关闭