shell中可能经常能看到:commond 2>&1
说明
> :代表重定向到哪里
1 :表示stdout标准输出,系统默认值是1
2 :表示stderr标准错误
& :表示等同于的意思,2>&1,表示2的输出重定向等同于1
2>&1 :接着,标准错误输出重定向(等同于)标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件
实例解析:
cmd > a 和 cmd >a 2>&1 为什么不同?
cmd >a :stdout直接送往文件 a
cmd >a 2>&1 :stdout和stderr送往文件a
两者的不同点在于:
从IO效率上来讲,cmd >a 2>&1的效率更高。