Linux Shell输入输出重定向

Linux中有三种标准输入输出:

  1. STDIN      对应0     标准输入,默认从键盘读取信息
  2. STDOUT   对应1    标准输出,默认将输出结果输出至终端
  3. STDERR    对应2    标准的错误信息,默认也会显示在终端

举例说明:

1.  执行 find /etc -name passwd 命令,默认会将命令的执行结果(STDOUT)与错误信息(STDERR)都输出至终端


2. 执行cat xxx 1>find.out  2>find.err 命令的执行结果输出正确的输出被1接收,错误的信息被2接收


3. 若要将所有的输出及错误信息都显示出来,可以用&表示全部1和2的信息


4. 将错误的信息重新定向到输出,将2的结果重定向至1中,就有了”2>1”,按照该写法,系统会默认将错误的信息(STDERR)2重定向到一个名字为1的文件中


5. 加&进行区分, 2>&1,将错误信息重定向至标准输出


6. 输入输出重定向应用


 

问题:为何2>&1要写在后面?

     command > file 2>&1

     command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中

     command 2>&1 >file

     2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端


参考资料:

1. http://blog.csdn.net/huangfei711/article/details/51059310

2. http://blog.csdn.net/w417318472/article/details/21398699


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D感知巨头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值