我觉得你从这里下手理解会好点:
1、“|”管道符,cmd1 |cmd2
真正理解“|”的功能和使用范围,首先看一下管道符的作用:简单的说,管道符可以把标准输入流与标准输出流进行合并;或者把某个命令的标准输出流作为另外一个命令的标准输入流。
这里cmd1指令执行的结果作为标准输出流,通过“|”后将cmd1的标准输出流作为了cmd2的标准输入流,并让cmd2执行。
但是,并不是所有的指令都能直接识别标准输入流的,常见的直接识别标准输入流的指令比如:awk,grep,tee,less,more,cat等文件操作命令及所有的正则表达式指令,
但是还有很多指令并不直接识别标准输入流的,比如:ls 、which、ifconfig等,对这部分命令,我们就可以用
cmd1 | xargs cmd2的方式了
而xargs是专门构造参数列表的,比如,如果此时,cmd2不能识别cmd1通过“|”生成的标准输入流的时候,xargs就会将cmd1的标准输入流转换成参数,并用cmd2来执行这个参数就正常了。
帅老师 16:58:59
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:
find /sbin -perm +700 |ls -l 这个命令是错误的
find /sbin -perm +700 |xargs ls -l 这样才是正确的
xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。
阅读(2143) | 评论(0) | 转发(0) |