分页: 1 / 1

普通的管道和xargs有什么区别

发表于 : 2011-11-22 11:33
NewUserFF
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-22 11:43
懒蜗牛Gentoo
管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

你可以试试运行:

代码: 全选

echo "--help"|cat
echo "--help"|xargs cat
看看结果的不同。

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-22 19:33
NewUserFF
懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

你可以试试运行:

代码: 全选

echo "--help"|cat
echo "--help"|xargs cat
看看结果的不同。
试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-23 9:09
懒蜗牛Gentoo
lz学C不?在linux下编程不?

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-23 12:36
YeLee
:em11 :em11 :em11 进来学习一下

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-23 15:15
eexpress
命令认STDIN的,或者认-参数的。就管道。
不认的,只能xargs,就是全面的输出补到命令的尾巴上。

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-23 15:16
liu滔
NewUserFF 写了:
懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

你可以试试运行:

代码: 全选

echo "--help"|cat
echo "--help"|xargs cat
看看结果的不同。
试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把
如果你直接在命令行输入cat而不输入其余的任何东西,这时候的cat会等待标准输入,因此你这时候可以

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

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

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

cat --help

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-23 19:08
NewUserFF
liu滔 写了:
NewUserFF 写了:
懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

你可以试试运行:

代码: 全选

echo "--help"|cat
echo "--help"|xargs cat
看看结果的不同。
试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把
如果你直接在命令行输入cat而不输入其余的任何东西,这时候的cat会等待标准输入,因此你这时候可以

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

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

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

cat --help
谢谢啦!这个解释是最好理解的

Re: 普通的管道和xargs有什么区别

发表于 : 2011-11-23 22:24
sunfish
这个不错,以前遇到不接受-参数的就很麻烦,一直没想到用xargs

Re: 普通的管道和xargs有什么区别

发表于 : 2012-03-01 17:30
itfoxnet
懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”

你可以试试运行:

代码: 全选

echo "--help"|cat
echo "--help"|xargs cat
看看结果的不同。
很精辟 蜗牛

Re: 普通的管道和xargs有什么区别

发表于 : 2012-03-01 17:31
itfoxnet
懒蜗牛Gentoo, 懒蜗牛Gentoo,