其他分享
首页 > 其他分享> > > outfile 2>&1 与 2>&1 > outfile

> outfile 2>&1 与 2>&1 > outfile

作者:互联网

这篇文章来简单地说明一下这两种写法的区别

dir > outfile 2>&1dir 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文件中

标签:输出,指向,文件,outfile,描述符,dir
来源: https://blog.51cto.com/u_12534050/2953431