Linux输出重定向

标准输入输出

这里写图片描述

输出重定向

> 代表以覆盖的方式将命令的正确输出输出到指定的文件或设备当中。
>> 代表以追加方式输出。

这里写图片描述

正确输出和错误输出同时保存

这里写图片描述

[kathy@localhost testDir]$ ll
total 8
-rw-rw-r--. 1 kathy kathy 12 Jul 31 10:15 test
-rw-rw----. 1 root  root  12 Jul 31 10:15 test2
[kathy@localhost testDir]$ cat test test2
output test
cat: test2: Permission denied

现有两个文件,用户读取test,属于正确标准输出;用户无权限读取test2,属于标准错误输出。

1、 >

[kathy@localhost testDir]$ cat test test2 > log
cat: test2: Permission denied
[kathy@localhost testDir]$ cat log 
output test

单独的>,把标准输出写入到log文件,而错误输出依旧显示在屏幕。
此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。

2、1>

1>,只把标准输出写入到log文件,而错误输出依旧显示在屏幕。

[kathy@localhost testDir]$ cat test test2 1> log
cat: test2: Permission denied
[kathy@localhost testDir]$ cat log
output test

相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上。

3、2>

2>,只把错误信息写入到log文件,而标准输出依旧显示在屏幕。

[kathy@localhost testDir]$ cat test test2 2> log
output test
[kathy@localhost testDir]$ cat log 
cat: test2: Permission denied

由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。

4、&>、>&

&>,将标准输出和错误信息同时写入log文件,屏幕上没有任何显示。

[kathy@localhost testDir]$ cat test test2 &> log
[kathy@localhost testDir]$ cat log 
output test
cat: test2: Permission denied
[kathy@localhost testDir]$ cat test test2 >& log
[kathy@localhost testDir]$ cat log
output test
cat: test2: Permission denied

同时改变了1=stdout和2=stderr,要写入文件,所以,执行命令后的所有输出信息,都不会显示在屏幕上。

5、2>&1

所有的信息都输出到同一个文件中

[kathy@localhost testDir]$ cat test test2 >log 2>&1
[kathy@localhost testDir]$ cat log 
output test
cat: test2: Permission denied

其中的2>&1表示错误信息输出到&1中,而&1,指的是前面的那个文件:log 。

注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到log,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了log,因此标准错误也会重定向到log,于是一切静悄悄。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值