xargs原理

xargs使用说明

管道符跟标准重定向可以将前面的标准输出作为后者的标准输入,但是像rm、ls等命令处理的是参数并不是标准输入,所以无法处理,此时可以借助xargs将前面的标准输出作为后面命令的参数

xargs用法

-n 指定每次传递参数的个数
example1:
echo user1 | useradd  useradd命令接受的是参数,但是管道符是做的标准输入,useradd无法处理标准输入,所以命令错误
echo user{1,10} | xargs useradd  useradd无法同时创建多个用户,则需要借助xargs的-n参数,让useradd单个顺序处理,命令错误
echo user{1,10} | xargs –n 1 useradd  命令正确,echo $?返回值为0

example2:

使用xargs传递参数时,遇到带有空格文件名的处理方法

touch “xar file.sh” touch创建一个带有空格的文件
当文件名带有空格,find查找后默认是以空格为分隔符传递给rm,则rm就认为传递过来的是两个文件,所以报错
文件名有特殊字符的,find需要指名处理动作,加-print0指明以ascii为0作为分隔符,同时在xargs处理时-0指明分隔符

posted @ 2020-05-30 16:51  zoer  阅读(146)  评论(0编辑  收藏  举报