標準入力からの読み込みを標準出力にそのまま出力しつつ、ファイルにも書き出すコマンド。
以下のようにすると、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
--
というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、-
で始まるファイル名を扱いたい場合に使うとよい。