teeコマンドをよく見かけて、コピペなどでよく使いますが正しいことをきちんと理解しておいた方がよいなとふと思いましたのでteeについてまとめます。
teeとは
Man page of teeにあるように、teeは以下の挙動をするコマンドです。
tee - 標準入力から読んだ内容を標準出力とファイルとに書き出す
これは、以下のようなケースで利用できます。
tmp$ date Sat Aug 10 00:22:27 JST 2019 tmp$ tmp$ date > file
通常であればdateの結果はfileに格納されます。しかし場合によってはファイルにも吐き出したいし、コンソール上でみたいということがあります。
teeの動き
そのときは以下のようにします。
tmp$ date | tee file Sat Aug 10 00:23:16 JST 2019 tmp$ cat file Sat Aug 10 00:23:16 JST 2019
するとファイルにも書き込まれ、標準出力にもでてきますね。
またファイルは複数あっても対応できます。
tmp$ date | tee file1 file2 file3 Sat Aug 10 00:24:01 JST 2019 tmp$ cat file[123] Sat Aug 10 00:24:01 JST 2019 Sat Aug 10 00:24:01 JST 2019 Sat Aug 10 00:24:01 JST 2019
wikiにてこんな形で説明がされていたので、これを考えると記憶しやすいですね。
teeとは英語のTであり、T字路(丁字路)を思い描くと、その機能がイメージしやすい。