これらは2 つの 記事で非常によく説明されています。基本的に、出力ターゲットのコピーとしてリダイレクトを左から右に読み取る必要があります。そう
command 2>&1 > log
- FD 2 (標準エラー) のターゲットを、通常は端末である FD 1 (標準出力) のターゲットに設定します。
- FD 1 のターゲットをファイルに設定します
log
。
これらは推移的ではないため、コマンドの実行時に標準エラーが実際に端末を指します。
command > log 2>&1
- FD 1 のターゲットをファイルに設定します
log
。
- FD 2 (標準エラー) のターゲットを FD 1 (標準出力) のターゲットに設定します。現在は file です
log
。
これは、標準出力と標準エラーの両方が同じファイルに記録されることを意味します。
command >& log
標準エラー出力と標準出力の両方を file にリダイレクトしますlog
。これは、前のコマンドの Bash シンタックス シュガーです。
command > log 1>&2
- FD 1 のターゲットをファイルに設定します
log
。
- FD 1 のターゲットを、通常は端末である FD 2 (標準エラー) のターゲットに設定します。これにより、以前のリダイレクトがオーバーライドされます。