原文地址:http://blog.csdn.net/yongan1006/article/details/8134581

一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别
NewUserFF 写道:
懒蜗牛Gentoo 写道:
管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

你可以试试运行:

代码:
echo "--help"|cat
echo "--help"|xargs cat

看看结果的不同。

试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把

如果你直接在命令行输入cat而不输入其余的任何东西,这时候的cat会等待标准输入,因此你这时候可以

通过键盘输入并按回车来让cat读取输入,cat会原样返回。而如果你输入--help,那么cat程序会在标准输出上

打印自己的帮助文档。也就是说,管道符 | 所传递给程序的不是你简单地在程序名后面输入的参数,它们会被

程序内部的读取功能如scanf和gets等接收,而xargs则是将内容作为普通的参数传递给程序,相当于你手写了

cat --help

来自:http://forum.ubuntu.org.cn/viewtopic.php?t=354669

补充解释:

在一个目录中有如下三个文件

a.c        b.c            c.c

find   . /   -print命令会打印出三个文件名

find . /    -print | grep a.c  只会打印出a.c这个文件

如果只输入命令grep a.c

那么你在键盘中只输入a.c字符串时,a.c会被打印两次,否则只打印你输入的字符

如果要找三个文件中,那个文件包括有hello字符

find ./ -print | xargs grep hello

总结:管道符后不加xargs相当于先将xargs后面的命令回车执行一下再从键盘里输入

管道符前面命令执行的结果内容

加上xargs 相当于直接从键盘输入管道符前面命令执行的结果内容再回车

再总结一下,就是回车的先后顺序不太一样。

管道命令和xargs的区别(经典解释)相关推荐

  1. linux下-exec和xargs的区别

    原文地址:http://blog.csdn.net/arganzheng/article/details/6260720 -exec和xargs的区别 2010-11-27 星期六 晴朗 当你在命令行 ...

  2. Linux文件查找命令find,xargs详述

    Linux文件查找命令find,xargs详述 总结:zhy2111314 来自:LinuxSir.Org 整理:北南南北 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量 ...

  3. xargs命令_Linux xargs命令:一个给其他命令传递参数的过滤器

    本文要为大家介绍的命令是 xargs,我们把它称为护花使者,因为它总是乐于协助其他的命令来完成一些事情.下面一起来看看它是如何护花的. xargs 是 execute arguments 的缩写,它的 ...

  4. linux命令中xargs,在Linux上使用xargs命令的详细教程

    大家好,我是良许. 在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令. xargs 可以将一个命令的输 ...

  5. Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数

    在编程中如果能够熟悉shell高阶语法,将对我们进阶为高级程序员有很大的帮助,本文将从Shell重定向 管道命令 awk编程 sed等方面展开介绍. 作者:有勇气的牛排 文章目录 1 shell重定向 ...

  6. shell中一些特殊命令|: 管道命令。;;在前一个命令结束时,而忽略其返回值,继续执行下一個命令。

    shell传递参数 $0 对应的是当前 Shell 脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1.$2.$3--则分别对应着 ...

  7. Linux冷门却很重要的命令(八)---xargs

    在上一篇文章(http://blog.csdn.net/zhoutimo/article/details/52035561)提到过,当执行命令完成后,想 把执行命令后的结果再次进行处理,引用了exec ...

  8. xargs mysql_xargs命令_Linux xargs命令:一个给其他命令传递参数的过滤器

    本文要为大家介绍的命令是 xargs,我们把它称为护花使者,因为它总是乐于协助其他的命令来完成一些事情.下面一起来看看它是如何护花的. xargs 是 execute arguments 的缩写,它的 ...

  9. [20180627]测试bbed是否支持管道命令.txt

    [20180627]测试bbed是否支持管道命令.txt --//测试bbed是否支持管道命令.txt 1.环境: SCOTT@test01p> @ ver1 PORT_STRING       ...

最新文章

  1. 如何解决多地开视频会议直播问题?
  2. [Win32]一个调试器的实现(六)显示源代码
  3. 二叉树的遍历算法(三级)
  4. java列表框_Java图形用户界面之列表框
  5. python基础0304
  6. 【前端】【cornerstone】cornerstone.js如何编辑图像/加载已有图像数据(以画直线为例)
  7. 不可多得的干货!BAT大厂Java面试真题锦集干货整理
  8. axios.all()解决并发请求的问题
  9. 第三届“传智杯”全国大学生IT技能大赛(初赛B组)
  10. mac下报 504 Gateway Time-out
  11. C#获取本地IP地址
  12. java上传视频并播放_javaweb中上传视频,并且播放,用上传视频信息为例
  13. 帝国cms生成静态php,帝国cms自动生成手机版静态插件
  14. python爬虫-国家企业_自动查企业工商登记信息(企业信用信息公示系统、极验Geetest与Python爬虫)...
  15. Qt删除文件和文件夹
  16. Spring事务管理 .
  17. spring成神之路第二十九篇:BeanFactory 扩展(BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor)...
  18. 【小白初学者】项目中遇到步进电机,别慌,照着改
  19. 洛谷P3667 [USACO17OPEN]Bovine Genomics G 动态规划
  20. Android开发案例之电话拨号器

热门文章

  1. Mybatis学习之配置优化
  2. 计算机的优势和劣势_100亿倍,中国量子计算机完胜美国,向中方科学家致敬
  3. Objective-C中MRC和ARC的自我理解
  4. Qt程序运行提示“it could not find or load the QT platform plugin “windows””
  5. 【Socket网络编程】1.bind()和 INADDR_ANY 解析
  6. ThreadLocal源码剖析
  7. 深入理解多线程(二)—— Java的对象模型
  8. 卷积Groups Group Convolutions
  9. 机器学习的数学基础(1)--Dirichlet分布
  10. 2018-2019-2 20165330《网络对抗技术》Exp9 Web安全基础