【ティー】

tee とは?

💡 水道のT字管のように、データの流れを二手に分けるコマンド
📌 このページのポイント
tee コマンド:データの流れを分岐 コマンド出力 ls -la の結果 | tee T字分岐 画面(stdout) リアルタイムで確認 ファイル保存 output.txt に記録 $ ls -la | tee output.txt | grep ".log"
teeによるデータの分岐イメージ(T字管)
ひよこ ひよこ

teeって何をするコマンドなの?

ペンギン先生 ペンギン先生

水道のT字管みたいに、データの流れを2つに分けるコマンドだよ。パイプで流れてくるデータを画面に表示しつつ、同時にファイルにも保存できるんだ

ひよこ ひよこ

リダイレクトでファイルに保存するのと何が違うの?

ペンギン先生 ペンギン先生

リダイレクト(>)だとファイルに保存されるけど画面には何も出ないんだよ。teeなら「見ながら保存」ができるんだ。「ls -l | tee filelist.txt」とすれば、画面にファイル一覧が出つつ、filelist.txtにも同じ内容が保存されるよ

ひよこ ひよこ

パイプの途中に入れることもできるの?

ペンギン先生 ペンギン先生

できるよ!「command1 | tee log.txt | command2」みたいに使えば、command1の出力をlog.txtに記録しつつ、そのままcommand2にも渡せるんだ。デバッグパイプの途中のデータを確認したいときに超便利だよ

ひよこ ひよこ

sudoと組み合わせると便利って聞いたけど?

ペンギン先生 ペンギン先生

「echo 'some text' | sudo tee /etc/config」みたいな使い方だね。「sudo echo 'text' > /etc/config」だとリダイレクトの部分はsudoが効かないんだけど、teeを使えばsudo権限でファイルに書き込めるんだ。これはLinux管理者なら必ず知っておきたいテクニックだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「tee」って出てきたら「出力を画面とファイルの両方に分岐させるコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「tee(T字管)」 = T字型の分岐管
💬 配管工事で使うT字管(tee)が由来だよ。データの流れを2方向に分けるイメージだね
← 用語集にもどる