tee コマンド

標準入力からの読み込みを標準出力にそのまま出力しつつ、ファイルにも書き出すコマンド。

以下のようにすると、hogecommand の標準出力を、hogeresult.txt に書き出しながら標準出力にもそのまま出力する。出力を2つに分岐するイメージ。

$ hogecommand | tee hogeresult.txt

ファイル名を複数書いたら、それらすべてに同時に書き出す。

$ hogecommand | tee hogeresult1.txt hogeresult2.txt

bashやzshのプロセス置換の機能を使えば、複数のコマンドに渡すこともできる。

$ hogecommand | tee >(foocommand1) | foocommand2

$ hogecommand | tee >(foocommand1) >(foocommand2) >(foocommand3) >/dev/null

teeという名前はTの字のように出力を分岐する動作から。

オプション

-a
書き出し先ファイルがすでに存在すれば、追記モードで書き出す。
--help
ヘルプ表示
--version
バージョン表示

-- というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、 - で始まるファイル名を扱いたい場合に使うとよい。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。