teeコマンドを以下のように使用すると標準エラー(stderr)はファイルに出力されません。 本資料では、teeを使って標準入力(stdout), 標準エラー(stderr)の両方をファイルに出力する方法を記します。
コマンド | tee 出力ファイル名
以下の構文のようにすればteeにより標準エラー(stderr)を標準入力(stdout)の両方を指定したファイルに出力することができます。
標準エラー(stderr)を標準入力(stdout)などについては、上記の関連資料を参照してください。
コマンド 2>&1 | tee 出力ファイル名
以下はechoコマンドを使ってstdout(標準出力)とstderr(標準エラー出力)に文字列を出力するシェルスクリプトを作成し実行したときの結果です。
#/bin/bash echo output stdout echo output stderr 1>&2
stderrはteeで指定したファイルに出力されず端末に表示される通常の使用方法で実行してみます。
$ chmod +x outmsg.sh
$ ./outmsg.sh | tee tee1.log output stderr output stdout
$ cat tee1.log output stdout
以下の構文で標準出力(stdout)、標準エラー出力(stderr)の両方がteeで指定したファイル名に出力されます。
コマンド 2>&1 | tee 出力ファイル名
$ ./outmsg.sh 2>&1 | tee tee2.log output stdout output stderr
$ cat tee2.log output stdout output stderr
以上、teeコマンドで標準出力(stdout)、標準エラー出力(stderr)の両方を出力する方法でした。