フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

teeコマンドについて学び直す

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字路(丁字路)を思い描くと、その機能がイメージしやすい。