> 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文件中

上一篇:4-20ma模拟量转无线wifi采集传输0-10v模拟量输入输出远距离免布线高精度采集控制方案


下一篇:0-10v转4-20ma一进二出隔离器/分配器