stderr
がリダイレクトされた後stdout
、またはその逆の場合はどうなりますか?
例えば:
someCommand > log.txt 2>&1
対。
someCommand 2>&1 > log.txt
リダイレクトは、出現順に行われます。
someCommand > log.txt 2>&1
fd(1) == stdout
fd(2) == stderr
log.txt
、fd(1) == log.txt
fd(2) == fd(1) == log.txt
someCommand 2>&1 > log.txt
fd(1) == stdout
fd(2) == stderr
fd(2) == fd(1) == stdout
log.txt
、fd(1) == log.txt
someCommand > log.txt 2>&1
- stdout と stderr の両方をlog.txt
.
someCommand 2>&1 > log.txt
- stdout からlog.txt
、stderr から以前の stdout (画面) へ。
最初のケースでは、stdout はファイルに送信されlog.txt
、次に stderr は stdout が添付されているもの (ファイルlog.txt
) に送信されます。2番目のケース。stderr は stdout が接続されているもの (おそらく tty) に向けられ、次に stdout は file に向けられますlog.txt
。