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指明分隔符