? ? ? ? xargs?命令是一个非常有用的命令行工具,可以将一些参数集合传递给其他命令作为参数,并利用指定的命令进行处理。它可以帮助我们批量处理文件,执行一些需要多个参数的命令,并且支持并发操作。那么这里不得不提到另一个命令管道符,管道实现的是将前面的输出stdout
作为后面的输入stdin
,但是有些命令不接受管道的传递方式。因此xargs的作用就是弥补这一缺陷处理管道传输过来的stdin,
?将处理后的数据传递到正确的位置。
xargs [OPTION] [COMMAND]
-d 指定 xargs 命令的分隔符
-p 打印将要执行的命令,需要用户确认
-t 打印最终执行的命令,不需要二次确认
-0 表示以 null 作为分隔符
-n 每次将一行中的多少个参数作为命令行参数
-r 当输入不包含非空格时,不执行命令,默认情况下,不管输入是否包含非空格时,都会执行命令
-I 命令行参数的每一项参数的变量
-P 最大并发数
-s 命令行参数最大长度
? ? ?批量关闭docker容器
docker ps -qf status=running | xargs -p docker stop
? ? 如果当前没有正在运行的容器,那么执行docker stop会报错,那么可以使用-r参数退出
docker ps -qf status=running | xargs -p -r docker stop
? ? ?批量启动停止的docker容器
docker ps -qf status=exited | xargs -t -r docker restart
? ? ?批量删文件
find ?./ ?-name ?"a*" ? | xargs ?-t ? ?rm -rf
? ?查找大文件
find ./ -size +256M | xargs ls -lh
? ?将多行装单行
cat >> test.txt << EOF
> A
> B
> C
> D
> E
> F
> G
> I
> L
> H
> J
> M
> N
> EOF
? 将test.txt文件一行输出
cat test.txt | xargs
?将test.txt? 按照33列输出
cat test.txt | xargs -n3