tee コマンドについて
`tee` コマンドは、
Unix系オペレーティングシステムで利用されるコマンドラインユーティリティの一つです。このコマンドの主な役割は、標準入力から受け取ったデータを標準出力に送り出すと同時に、指定されたファイルにもそのデータをコピーすることです。この動作は、T字路(
丁字路)の形状を思い浮かべると理解しやすいでしょう。標準入力から入ってきたデータが、標準出力とファイルという2つの方向に分岐して流れていく様子が、まさにT字路の形状に合致します。
基本的な使い方
`tee` コマンドの基本的な構文は以下の通りです。
bash
tee [オプション] [ファイル名 ...]
ここで、`[オプション]` には、`tee` コマンドの動作を制御するためのオプションを指定します。`[ファイル名 ...]` は、標準出力の内容をコピーする対象となるファイル名を指定します。複数のファイルを指定することも可能です。
主なオプション
`tee` コマンドには、いくつかのオプションが存在しますが、特に重要なオプションとして以下の2つが挙げられます。
`-a` または `--append` オプション:このオプションを指定すると、指定したファイルにデータを追記します。デフォルトでは、指定したファイルがすでに存在する場合は、その内容が上書きされますが、このオプションを使用すると、上書きではなく追記が行われるようになります。
`-i` または `--ignore-interrupts` オプション:このオプションを指定すると、SIGINT(Ctrl+Cによる割り込み)を無視します。これにより、コマンド実行中にユーザーが Ctrl+C を押しても、 `tee` コマンドの処理が中断されなくなります。
具体的な使用例
以下に、`tee` コマンドの具体的な使用例をいくつか示します。
1. コマンドの出力結果を画面に表示しつつ、ファイルにも保存する。
bash
ls -l | tee output.txt
この例では、`ls -l` コマンドの出力結果が画面に表示されるとともに、`output.txt` というファイルにも保存されます。
2. コマンドの出力結果をファイルに追記する。
bash
date | tee -a log.txt
この例では、`date` コマンドの出力結果が `log.txt` ファイルに追記されます。
3. 複数のファイルに同じ内容を保存する。
bash
cat input.txt | tee output1.txt output2.txt
この例では、`input.txt` の内容が画面に表示されるとともに、 `output1.txt` と `output2.txt` の両方のファイルに保存されます。
teeコマンドの利点
`tee` コマンドは、主にパイプライン処理の一部として使用されることが多く、コマンドの出力を複数の場所へ同時に送りたい場合に非常に便利です。特に、コマンドの実行結果を画面で確認しながら、同時にファイルに保存して記録を残したい場合に役立ちます。これにより、後でコマンドの結果を再確認したり、他の処理で利用したりすることが容易になります。
関連コマンド
cat: ファイルの内容を表示したり、複数のファイルを結合したりするコマンドです。
tty: 端末の名前を表示するコマンドです。
外部リンク
Manpage of TEE JM Project(GNU 版)
tee(1) man page(SunOS リファレンスマニュアル)
*
tee(1) man page(HP-UX リファレンス)
これらの情報源は、`tee` コマンドの詳細な仕様や追加のオプションについてさらに深く理解するのに役立ちます。