linux下xargs和管道的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下xargs和管道的区别相关的知识,希望对你有一定的参考价值。

管道将前面的标准输出作为后面的标准输入,xargs则将标准输入作为命令的参数

你可以试试运行如下代码:

echo "--help"|cat
echo "--help"|xargs cat

结果如下:

技术分享

如果你直接在命令行输入cat后回车,而不输入命令参数,这时cat会等待标准输入,你通过键盘输入内容并按回车来,cat进程会读取输入并原样返回。

所以如果此时你输入--help,那么cat程序会在标准输出上输出--help

技术分享

也就是说,

  • 管道符 | 所传递给程序的不是你简单地在程序名后面输入的参数,它们会被程序内部的读取功能如scanf和gets等接收
  • xargs则是将内容作为普通的参数传递给程序,在这个例子中相当于你手写了 cat --help,系统会输出cat的帮助文档

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


以上是关于linux下xargs和管道的区别的主要内容,如果未能解决你的问题,请参考以下文章

管道和xargs区别

管道和xargs的理解

xargs管道exec区别

管道xargs和-exec的介绍与区别

管道xargs和-exec的介绍与区别

老男孩教育每日一题-2017年5月19日-使用find命令的时候 |xargs(管道xargs)与-exe有什么区别?