sh [duplicate]を使用してSTDOUTをSTDERR 1>&2にリダイレクトします。

sh [duplicate]を使用してSTDOUTをSTDERR 1>&2にリダイレクトします。

1>&2と>順序の違いを理解するのが難しいです。たとえば、私はfiを持っていてfile持っfileていません。その後、diff fie file2エラーが発生し、次のようにエラーメッセージをstdoutにリダイレクトしようとしました。

$ 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は空ですか?誰も>&と<&の参照を指摘できますか?ありがとうございます。

関連情報