zoukankan      html  css  js  c++  java
  • 管道和xargs区别

    一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加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 相当于直接从键盘输入管道符前面命令执行的结果内容再回车

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

  • 相关阅读:
    洛谷 P1325 雷达安装 解题报告
    洛谷 P2184 贪婪大陆 解题报告
    洛谷 P3942 将军令 解题报告
    洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
    洛谷 P1436 棋盘分割 解题报告
    C++生成dump文件,调试dump文件
    判断机器大小端的两种实现方法
    判断机器大小端的两种实现方法
    Visual Studio 代码生成 运行时库的选择
    Visual Studio 代码生成 运行时库的选择
  • 原文地址:https://www.cnblogs.com/zxc2man/p/7560221.html
Copyright © 2011-2022 走看看