xargs命令
简介
在使用shell的过程中,我们经常会希望将前面一个命令的结果作为后面一个命令的参数进行输入,此时经常会使用管道,但是因为有些命令是不接受管道的传递方式的,比如ls命令,此时就可以使用xargs命令。xargs实现的是将管道传输过来的stdin进行处理然后传递到命令的参数位上。也就是说xargs完成了两个行为:处理管道传输过来的stdin;将处理后的传递到正确的位置上。
经常使用的例子
case1:删除文件
当要删除的文件很多时,我们经常会遇到如下错误:/bin/rm: argument list too long,此时可以使用如下命令解决:
ls | xargs rm
case2:移动或者复制文件
有时我们希望通过find命令找到待处理的文件路径,然后再将该结果作为mv或者cp命令的输入进行处理,此时可以使用如下指令:
find . -name “查找文件” | xargs -i mv {} 目标文件夹
case3:删除进程
我们在日常的工作中经常会遇到需要同时删除大量进程的情况,此时也需要使用到xargs,命令如下:
ps -ef | grep “进程名” | awk ‘{print $2}’ | xargs kill -9