使用 sh 将 STDOUT 重定向到 STDERR 1>&2

使用 sh 将 STDOUT 重定向到 STDERR 1>&2

我很难理解 1>&2 和 > 的顺序之间的区别。例如,我有filefile没有 fie。然后diff fie file2给我错误,我尝试将错误消息重定向到标准输出,如下所示:

$ diff fie file2 > out.log 2>&1
$ cat out.log
diff: fie: No such file or directory

但是,如果我将顺序颠倒为

$ diff fie file2 2>&1 > out2.log
diff: fie: No such file or directory
$ cat out2.log
$ 

输出不同。为什么是这样?而如果STDERR和STDERR通过2>&1合并,文件描述符2会为空吗?任何人都可以指出关于 >& 和 <& 的参考吗?谢谢。

相关内容