を使用して両方をキャプチャするのSTDERRとSTDOUT、同じファイルにキャプチャするのが最適な順序はわかりませんtee。私がファイルにパイプしたい場合、リダイレクト後にファイルハンドルをマップする必要があることを知っています、すなわち
find . >/tmp/output.txt 2>&1
これは、送信するためにシェルに指示STDOUTを/tmp/output.txtしてから送信するためSTDERRにSTDOUT(今に送信されています/tmp/output.txt)。
2>&1ファイルをリダイレクトする前にを実行しようとしても、望ましい効果は得られません。
ただし、パイプを使用したい場合teeは、次のようになります。
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&使用した場合、command1の標準エラーはパイプを介してcommand2の標準入力に接続されます。これはの省略形です2>&1 |。標準エラーのこの暗黙のリダイレクトは、コマンドで指定されたリダイレクトの後に実行されます。」