管道命令和xargs的区别(经典解释)
来源:互联网 发布:娃娃音网络女歌手 编辑:程序博客网 时间:2024/05/16 16:13
管道符号,是unix功能强大的一个地方,符号是一条竖线:”|”,
用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2,
例如:
ls -l | more
该命令列出当前目录中的任何文档,并把输出送给more命令作为输入,more命令分页显示文件列表。
又如 rpm -aq | less
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加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的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令和xargs的区别(经典解释)
- 管道命令"|"和"xargs"命令的区别
- 管道命令和xargs的区别
- 管道命令和xargs的区别
- 管道命令和xargs的区别
- 管道命令和xargs的区别
- xargs和管道的区别
- linux中xargs和管道命令的区别
- xargs命令详解,xargs与管道的区别
- xargs命令详解,xargs与管道的区别
- xargs命令详解,xargs与管道的区别
- IO Streams:数据流
- 304. Range Sum Query 2D
- InstallShield帮助文档(译一)
- 网络请求展示到listview
- Linux根目录下的文件夹含义以及常用命令
- 管道命令和xargs的区别(经典解释)
- 轻松玩转word表格拆分与合并
- 串口通信与编程01:串口基础知识
- 美政府宣布将重返月球,建立永久性基地;携程回应公众号诽谤丨价值早报
- 鹿晗公布恋情致微博宕机;微信发布国庆长假数据报告;三星宣布将销售翻新版Note 7 丨价值早报
- 信手拈来按建帮你来操作技巧大全
- 支付宝伪造交易截图软件
- ActionBarActivity cannot be resolved to a type
- (Linux内核)printk 格式说明