どうやって達成できますか?
cmd >> file1 2>&1 1>>file2
つまり、標準出力そしてstderrは1つのファイル(ファイル1)にリダイレクトする必要があり、stdout(ファイル2)のみを別のファイルにリダイレクトする必要があります(どちらも追加モードで)。
ベストアンサー1
問題は、出力をリダイレクトするときに次のリダイレクトに使用できなくなることです。tee
2番目のリダイレクトの出力を維持するために、サブシェルでパイプを使用できます。
( cmd | tee -a file2 ) >> file1 2>&1
または、端末から出力を表示するには、次の手順を実行します。
( cmd | tee -a file2 ) 2>&1 | tee -a file1
tee
に最初のstderrを追加したくない場合は、file1
コマンドのstderrをいくつかのファイル記述子(例:3)にリダイレクトし、それをstdoutに再度追加する必要があります。
( 2>&3 cmd | tee -a file2 ) >> file1 3>&1
# or
( 2>&3 cmd | tee -a file2 ) 3>&1 | tee -a file1
(@fra-sanに感謝します)