Linux中关于标准文件描述符的重定向

本文介绍了如何在Linux命令行中管理输出,包括如何只重定向错误、分别重定向错误和正常输出,以及如何将错误和正常输出合并到同一个文件。通过示例展示了使用>>、>和2>等符号进行重定向的操作,帮助理解错误优先级和集中查看错误信息的重要性。

1.只重定向错误
STDERR文件描述符2。可以选择只重定向错误消息,将该文件描述符值放在重定向符号前。该值必须紧紧地放在重定向符号前,否则不工作。

$ ls -al badfile 2> errorfile
$ cat errorfile
ls: cannot access errorfile: No such file or directory

2 利用>分别重定向错误和数据
如果想重定向错误和正常输出,必须用两个重定向符号。需要在符号前面放上待重定向数据所对应的文件描述符,然后指定用于保存数据的输出文件。

$ ls -al test test2 test3 badtest 2> test6 1> test7
$ cat test6
ls: cannot access test: No such file or directory
ls: cannot access badtest: No such file or directory
$ cat test7
-rw-rw-r-- 1 rich rich 158 2014-10-16 11:32 test2
-rw-rw-r-- 1 rich rich 158 2014-10-16 11:32 test3

3 利用符号&重定向错误和数据
可以将STDOUT和STDERR的输出重定向到同一个输入文件中。

$ ls -al test test2 test3 badtest &> test7
$ cat test7
ls: cannot access test: No such file or directory
ls: cannot access badtest: No such file or directory
-rw-rw-r-- 1 rich rich 158 2014-10-16 11:32 test2
-rw-rw-r-- 1 rich rich 158 2014-10-16 11:32 test3

当使用&>时,命令生成的所有输出都会发送到同一位置,包括数据和位置。你可能已经注意到,错误消息在文件之前。这是因为bash shell自动赋予了错误消息更高的优先级。这样你就能够集中浏览错误信息了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值