Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327792
  • 博文数量: 55
  • 博客积分: 910
  • 博客等级: 准尉
  • 技术积分: 393
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-07 07:12
文章分类

全部博文(55)

文章存档

2012年(55)

我的朋友

分类: LINUX

2012-05-25 17:48:32

我觉得你从这里下手理解会好点:
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 。
阅读(2152) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~