请说明下面两条命令的区别
./a.out > outfile 2>&1
./a.out 2>&1 > outfile
请具体解释一下图中的描述谢谢
请具体解释一下图中的描述谢谢
dir > outfile 2>&1和dir 2>&1 > outfile,前者不会有任何输出,而后者会把错误信息输出来,因为在linux中,重定向其实是调用了dup函数,对文件描述符进行了复制,而2>&1就是将文件描述符2重定向到文件描述符1所指向的文件
对于dir > outfile 2>&1,文件描述符1首先指向了outfile,然后2>&1使得文件描述符2也指向了文件描述符1所指向的文件
而对于dir 2>&1 > outfile,文件描述符2首先指向了文件描述符1所指向的文件,也就是标准输出,然后> outfile使得文件描述符1指向了outfile文件,而此时文件描述符2(标准错误)依然指向终端,因此错误信息就会被显示到屏幕上,而正常的输出则会被重定向至outfile文件中
————————————————
版权声明:本文为CSDN博主「「已注销」」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/include_heqile/article/details/83082527