对于2>&1的一点理解

理解2>&1与输出重定向
本文深入解析了Linux中2>&1与2&>1的区别,详细阐述了标准错误输出与标准输出的重定向机制,并通过实例展示了正确的使用方法。

首先说什么是1,什么是2:

    1代表标准输出,2代表标准错误输出,都默认输出到屏幕。

再说为什么是2>&1而不是2&>1,首先后者&>这种写法是存在的,代表将标准输出和标准错误输出都重定向。

    2>&1是一部分,一种固定写法,代表将标准错误输出重定向到标准输出。

    2&>1可以拆成三部分2,&>,1,这三部分分别是:

        2:前面执行程序的参数。

        &>:将标准输出和标准错误输出都重定向。

        1:重定向到文件1。

最后说为什么2>&1为什么要写到最后:

先贴一张图,在一个空目录中ls xxx必然是标准错误输出,如果先是2>&1,那么这个时候告诉SHELL把标准错误输出重定向到标准输出,这时候标准输出默认是到屏幕的,所以标准错误输出→标准输出→屏幕,就解释了为什么错误输出到了屏幕。再到后面的>log,把标准输出重定向到屏幕,这个时候标准输出已经没有任何东西了,所以log文件为空。

再贴一张图:

这个时候正常了,先把标准输出指到log文件,再把错误输出指到标准输出,错误输出的时候也就成了:错误输出→标准输出→log文件。

最后的最后,自己猜想了一种情况:

然而这种情况真的存在!也可以将标准错误输出和标准输出全部重定向到log文件,和上面的理解其实一致。

 

以上就是个人对2>&1的一些理解,欢迎批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值