http://zhumeng8337797.blog.163.com/blog/static/10076891420104215439296/

1>&2 正确返回值传递给2输出通道 &2表示2输出通道
如果此处错写成 1>2, 就表示把1输出重定向到文件2中.
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.

cat x y 1> hold 2>&1
结果就是将标准+错误输出到hold;

cat x y 2>&1 1> hold
则是将错误输出重定向到标准输出,而将标准定向到hold。
所以错误输出不会进入hold,因为被定向到标准输出。

赋值关系 (1) 1 = hold , 2 = 1;
(2) 2 = 1 , 1 = hold。
明白了?呵呵

为何2>&1要写在后面?
command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

用strace可以看到:
1. command > file 2>&1
这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)

2. command 2>&1 >file
这个命令中实现重定向的关键系统调用序列是:
dup2(1,2)
open(file) == 3
dup2(3,1)

转载于:https://blog.51cto.com/eread/1323519

数据流重导向 -- 第11章   认识与学习 BASH相关推荐

  1. Linux的Bash——(五)数据流重导向

    5 数据流重导向 何为数据流重导向:将数据重新传递到其他地方去 那我们的数据一般传输去哪?屏幕啊!大多数情况下我们执行的命令数据最后都会传递到我们的屏幕,那我们可以传递到其他地方吗?当然可以,这就是我 ...

  2. 第十一章 认识与学习BASH【鸟哥linux私房菜学习笔记】

    认识与学习BASH 一.认识bash这个shell (一)bash shell 的功能 1.history指令 默认的命令记忆功能为1000条命令.本次登录过程中使用的命令保存在内存中,之前登录的命令 ...

  3. 第11章常用类库学习总结

    Java是一种面向对象语言,java中的类把方法与数据链接在一起,构成了自包含式的处理单元为u可提升java程序的开发效率,java的类包中提供了很多常用类以方便开发人员使用.无所谓,术业有专攻,在常 ...

  4. C++ Primer 第11章 泛型算法 学习总结

    文章目录 11.2 算法 11.2.1 只读算法 **1.find函数** **2.accumulate函数** **3.find_first_of 函数** 11.2.2 写容器元素算法 1.fil ...

  5. 鸟哥Linux私房菜知识点总结10到11章

    最近翻看了一本<鸟哥的Linux私房菜>.这是一本基础的书,万丈高楼平地起,会的不多但可以学.这是我整理的一些知识点,虽然很基础.希望和大家共同交流. 第10章 vim程序编辑器 按键说明 ...

  6. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)...

    第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...

  7. Thinking in java 第11章 持有对象 笔记+习题

    Thinking in java 第11章 持有对象 学习目录 11.1 泛型和类型安全的容器 1. 当你制定了某个类型作为泛型参数时,你并不仅限于只能将该确切类型的对象放置到容器中.向上转型也可一样 ...

  8. 鸟哥的Linux私房菜(基础篇)- 第十一章、认识与学习 BASH

    第十一章.认识与学习 BASH 最近升级日期:2009/08/25 在 Linux 的环境下,如果你不懂 bash 是什么,那么其他的东西就不用学了!因为前面几章我们使用终端机下达命令的方式,就是透过 ...

  9. linux-basic(11)认识和学习bash

    [11.1]认识bash这个shell 1)介绍:其实壳程序的功能只是提供用户操作系统的一个接口,因此这个壳程序需要可以呼叫其他软件才好.命令,包括 man, chmod, chown, vi, fd ...

最新文章

  1. Ubuntu13.04下使用dnw
  2. Yeslab安全实验室CCNP Security PPT到货
  3. Elasticsearch: Five Things I was Doing Wrong
  4. 《机器学习》 第 5 章 神经网络
  5. 005_Spring Data JPA条件查询
  6. 【Python】Pyecharts数据可视化模块练习
  7. 三维动画制作的基本流程
  8. windows远程桌面超出最大连接数强制登录命令
  9. Java工程师修炼之路
  10. docker 部署java_使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase
  11. ykcchf 2013 v2.1101 最新版下载
  12. 神舟笔记本触摸板驱动_关闭笔记本触摸板的四种方法
  13. 获取客户端IP和MAC
  14. 如何访问个人邮箱中的未读邮件
  15. mysql启动报错解决-1
  16. 怎么在alert里加图片_麻辣烫里加牛奶,创意吃法,麻辣鲜香吃得超过瘾
  17. 学习HTML5+CSS3的第二天
  18. oracle 分组随机抽取,Oracle 中实现随机抽取数据
  19. 大学选修计算机课程内容,《大学计算机基础》学大纲(公共课).doc
  20. CVPR 2020 《Graph-Structured Referring Expression Reasoning in The Wild》论文笔记

热门文章

  1. python wordpress xmlrpc 调用_20542通过wordpress_xmlrpc的python包远程操作wordpress 编辑 更新Post...
  2. 计算机发展史较为重大的事件,图说:15件计算机发展史中的重大事件(7)
  3. java 最少使用(lru)置换算法_[内附完整源码和文档] 基于C#的可视化虚拟存储器管理(LUR算法)...
  4. java实现内存修改器_魔兽3内存修改器 v8
  5. 用计算机计算最大公因数,利用计算器求两个较大数的最大公约数的简便方法
  6. memcached 分布式锁 java_分布式锁的三种实现方式
  7. c++连接云服务器_如何简单搭建Minecraft服务器
  8. 2021年甘肃省中职生高考成绩查询,甘肃2021年中专生怎么参加普通高考
  9. 导出mysql某个表数据_MYSQL使用mysqldump导出某个表的部分数据
  10. Docker 快速安装 Mysql