今天刚好遇到需要使用xargs的情况,就来研究一下xargs 和 管道符的区别

举几个例子,下面两个语句执行后的结果是什么呢?

1. zhang$ find . -name "*.properties" | more

--将当前目录下以properties结尾的文件名及路径给more,出来的是文件列表的名称

2. zhang$ find . -name "*.properties" | xargs more

--将当前目录下以properties结尾的文件给more,出来的是所有文件的内容

通过这个例子可以知道,xargs相当于传给后面一个参数,而管道则传给后面命令一个字符串:

例子1,将find出来的内容(假设结果存储为a.txt)传给more,可以分解成以下两个命令:

  zhang$ find . -name "*.properties" > a.txt

  zhang$ more a.txt

例子2,将find出来的文件(假设找到的是a.properties, b.properties, c.properties)传给more,可以分解成以下4个命令:

  zhang$ find . -name "*.properties" #找到三个文件a.properties, b.properties, c.properties

  zhang$ more a.properties

  zhang$ more b.properties

  zhang$ more c.properties

两个执行出来的效果也是完全不一样的

这篇文章(http://blog.csdn.net/yongan1006/article/details/8134581)说的一段话很有道理:

管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

这两个命令的输出结果清晰的说明了问题:

echo "--help"|cat

echo "--help"|xargs cat

另外参考一个:

http://blog.csdn.net/sunboy_2050/article/details/7303501

最新文章

  1. 深入学习jQuery特性操作
  2. RPC-远程过程调用协议
  3. Jquery学习笔记--性能优化建议
  4. DelPhi连接数据库方式
  5. windbg 命令 gchandles
  6. Nofollow
  7. fix eclipse gc overhead limit exceeded in mac
  8. 【动态规划】 之最长公共子序列LCS
  9. 为自己的Android应用添加广告
  10. Java并发之线程管理(线程基础知识)
  11. beta冲刺5-咸鱼
  12. Python内置函数(12)——compile
  13. 安装anaconda和python3.7环境
  14. 正确的学python方式
  15. VS Code +node npm 调试 js
  16. ReactNative项目结构目录详解
  17. Linux Oracle安装
  18. CStringArray error C2248: 'CObject::CObject' : cannot access private member declared in class
  19. 【图文教程】win7+VMware8.0+CentOS6.4 NAT上网
  20. 理解kubernetes环境的iptables

热门文章

  1. PHP获取上周、本周、上月、本月、本季度、上季度时间方法大全
  2. Zabbix监控
  3. webapi-1
  4. Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
  5. p/invoke碎片--对数组的封送处理
  6. 数学规划模型的matlab求解 非线性最小二乘lsqnonlin
  7. python 单例模式
  8. C#读取文件为byte[]
  9. 面向科学计算的Python IDE--Anaconda
  10. 为何img、input等内联元素可以设置宽、高