

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
teeコマンド・とは?
teeは、標準入力からデータを受け取り、標準出力へ表示しつつ、同時に一つ以上のファイルにも書き込むコマンドです。パイプラインと組み合わせると、画面に表示しながら別の場所に保存する、という理想的な動作を実現します。
使い方のイメージとしては、コマンドの出力を「見せるために表示する」と「保存するためにファイルに書く」という二つの動作を同時に行うことです。teeは「出力を二方向に分ける分岐役」を果たしてくれる存在です。
基本の使い方
最も基本的な例は、標準出力を画面に表示しつつ、ファイルにも保存することです。次のように使います。
コマンドの例: echo こんにちは、世界 | tee hello.txt
この例では、画面には「こんにちは、世界」と表示され、同時に現在のディレクトリに hello.txt というファイルが作られ、内容も同じものが書き込まれます。
オプションの基本
| 説明 | |
|---|---|
| -a | ファイルの末尾に追記します。既存の内容を崩さず、新しい出力を追加します。 |
| -i | 割り込み(Ctrl+C など)を無視します。長時間の処理や中断が予想される場面で安全に動かすことができます。 |
上記の表にあるように、-aは「追記」で、-iは「割り込み対策」です。実務ではこの二つを組み合わせて使う場面が多いです。
実践的な使い方の例
例1: ファイルに追記しつつ画面にも表示する
コマンド: <span>長い出力 | tee -a logfile.txt
例2: パイプラインの途中でログを取りたい場合
コマンド: cat largefile.txt | tee output.txt | grep “検索語”
例3: 出力を捨てずに一時的に破棄したい場合
コマンド: somecommand | tee /dev/null
例4: 実務的なログ取りの一例として、プロセスの出力をファイルに残しつつ監視する場合があります。次のように組み合わせれば、定期的なログの保存と現場での表示を両立できます。
コマンド: ps aux | tee processes.txt | grep apache
teeとリダイレクトの違い
リダイレクト > は「出力を特定のファイルにだけ送る」動作ですが、teeは「画面表示とファイル保存の二方向へ同時に出力を分ける」点が大きな違いです。つまり、teeを使うことで、デバッグ中のログを見ながら保存する、あるいはログと画面の両方を手元で確認する、という作業がとても楽になります。
注意点とコツ
ファイルの権限や既存ファイルの上書きには注意しましょう。teeはデフォルトでファイルを新規作成しますが、既に同名のファイルがある場合は上書きします。-aを使えば追記モードになり、元の内容を壊さずに追加できます。
よくある質問
- tee はどの場面で使いますか?
- コマンドの出力を同時に画面表示とファイル保存したい場合に適しています。ログ取り、デバッグ、データ収集など、出力を再利用したいシーンで重宝します。
まとめ
本稿のポイントは、teeは「出力を二方向へ同時に分配する便利ツール」であり、-aで追記、-iで割り込みを無視するオプションがある、ということです。リダイレクトだけでは難しい“出力の同時保存と表示”を簡単に実現でき、日々のコマンド作業を効率化してくれます。
teeコマンドの同意語
- teeコマンド
- 標準出力を画面へ表示しつつ、指定したファイルにも同時に書き出すUnix系のコマンド。
- ティーコマンド
- teeの別表記。読み方の変化で使われる呼称。機能は同じ。
- 標準出力複製コマンド
- 標準出力を複製して、別の出力先(ファイル)にも保存できる機能を指す言い方。
- 出力二重化コマンド
- 出力を2系統へ同時に書き出すコマンドの別称。
- 出力同時書き込みコマンド
- 画面とファイルの両方へ、同時に書き込むことを強調した呼称。
- 画面表示とファイル同時出力コマンド
- 画面表示とファイル保存を同時に行う性質を表す表現。
- 出力分岐コマンド
- 出力を複数の宛先へ分岐させることを指す言い方。
- ファイル&画面同時表示コマンド
- 同時表示とファイル保存を両立する機能を指す表現。
- 標準出力二重化ツール
- 標準出力を二重化して、別ファイルへ書き出す道具としての表現。
- パイプ出力拡張コマンド
- パイプラインの出力を拡張(ファイルへ保存)する機能を指す呼称。
- 出力をファイルへ保存しつつ表示するコマンド
- 出力を画面に表示しながら、同時にファイルにも保存することを強調した説明。
- 2重出力コマンド
- 同じ出力を2箇所へ同時に送ることを意味する短い表現。
teeコマンドの対義語・反対語
- 標準出力のみ出力
- teeコマンドは標準出力とファイルの両方に出力しますが、こちらはファイルへは出力せず、標準出力だけを使う状態です。実務ではコマンドの出力をそのまま端末へ表示させたい場合に近い感覚です。
- ファイル出力のみ
- 標準出力には表示せず、ファイルへのみ書き込む状態です。実務例としては、出力をファイルにだけ記録したいが画面には出したくないときに使えます。
- 分岐を使わない一方向出力
- teeは入力を二つ以上の出力先へ分岐しますが、こちらは一つの出力先にだけ流す、分岐を伴わない一方向の出力動作を指します。
- 入力を標準入力に依存しない出力源
- teeは標準入力を前提に動作しますが、こちらは標準入力を使わず、引数や固定データを入力源とする状態です。データ源を stdin 以外に限定するときの発想です。
- データの結合/合流を行う出力
- teeの反対の発想として、複数の入力を一つの出力に結合する動作を指します。例としては paste など、複数ソースを一つの出力にまとめる操作がイメージとして挙げられます。
teeコマンドの共起語
- 標準入力
- teeは標準入力(stdin)からデータを受け取り、標準出力とファイルへ分配します。
- 標準出力
- 標準出力(stdout)へデータを出力する出力先。パイプを介して次のコマンドへ渡すのにも使われます。
- 標準エラー
- 標準エラー出力(stderr)にはエラーメッセージが送られますが、teeの通常の分岐には直接関与しません。
- ファイル
- 出力先ファイル。teeは受け取ったデータを一つ以上のファイルへ同時に書き込み、ファイルの初期動作は上書きが基本です(-aで追記)。
- ファイル名
- 出力先ファイルの名前。teeの引数として指定します。
- リダイレクト
- シェルでの出力先の切替機能。teeはリダイレクトと組み合わせて使われることが多いです。
- パイプ
- 前のコマンドの標準出力を受け取り、teeに渡すための記号(|)です。
- パイプライン
- 複数のコマンドを連結してデータを流す流れ。teeはこの流れの途中でデータを複製します。
- -aオプション
- 指定したファイルへ追加書き込みを行います。
- 追記モード
- ファイル末尾へデータを追加して保存する動作モード。
- 追記
- ファイルの末尾にデータを追加すること。
- -iオプション
- 割り込み信号を無視するモード。実行中にCtrl+C等で止まりにくくなります。
- 割り込み信号
- 処理を中断させる信号(例: SIGINT)。
- 上書き
- デフォルトではファイルを開くと既存内容が削除され、新しいデータで置き換わります。
- 出力先
- データの転送先。標準出力とファイルの複数先へ同時に書き出せます。
- 複数ファイル
- teeは同時に複数のファイルへ出力を書き込むことができます。
- データの分配
- 1つの入力データを複数の出力先へ同時に分配して書き込みます。
- データフロー
- データが入力から出力・ファイルへと流れる処理の流れのこと。
- コマンド連携
- 他のコマンドと連携して使われ、特にパイプとセットで使われます。
- GNU coreutils
- teeはGNU Core Utilitiesに含まれるコマンド群の一つです。
- ファイルディスクリプタ
- ファイルとデータの入口を番号で管理する仕組み。teeはstdinをファイルディスクリプタ0、stdoutを1として扱います。
- 標準ストリーム
- 標準入力・標準出力・標準エラーをまとめて指す用語。teeは主に stdin と stdout を扱います。
teeコマンドの関連用語
- teeコマンド
- 標準入力を受け取り、標準出力と同時に指定したファイルにも出力する UNIX/Linux のコマンドです。
- 標準入力 (stdin)
- コマンドがデータを受け取る入力元で、通常は前のコマンドの出力やキーボードから来ます。
- 標準出力 (stdout)
- コマンドが通常の出力を送る先で、画面表示などに相当します。
- 標準エラー出力 (stderr)
- エラーメッセージを出力する出力先で、エラー処理を分けて扱えます。
- パイプ (pipe)
- 前のコマンドの出力を次のコマンドの入力としてつなぐ仕組みで、コマンドを連結する基本手段です。
- リダイレクト
- 出力先をファイルや他の場所へ切り替える操作の総称で、 > や >> などの演算子を使います。
- 複数ファイル出力
- tee は複数のファイルへ同時に出力することができます(ファイルが複数渡る場合はそれぞれに書き込みます)。
- -a オプション (追加書き込み)
- ファイルへ追記して出力するモードで、既存の内容を消さずに追加します。
- -i オプション (割り込み無視)
- 割り込みシグナルを無視して動作を続ける設定で、長い処理で邪魔されにくくします。
- /dev/null
- 出力を捨てるための特別なデバイスファイルで、デバッグ時に出力を捨てる用途に使います。
- GNU coreutils
- tee を含む GNU の基本的なコマンド群を提供するパッケージです。
- シェル (bash / zsh 等)
- tee はシェル経由で実行され、パイプやリダイレクトと組み合わせて使われます。
- パイプライン
- 複数のコマンドを連結して、前段の出力を後段の入力として流す連結状態を指します。
- ログ出力への活用
- tee を使うと、画面表示と同時にログファイルへ記録することができ、デバッグや監視に便利です。
- 2>&1 のリダイレクト
- 標準エラー出力を標準出力に統合して、tee で両方を処理できるようにする方法です。
- 終了ステータス
- tee の終了コードは、通常は全てのファイルへの書き込みの成否に依存します。
- 使用例
- コマンドパイプと組み合わせて、出力を画面にもログにも同時に残す典型的な使い方です。
- 上書き (overwrite)
- デフォルトではファイルは上書きされ、同名ファイルの既存内容は消えます。
- 追記 (append)
- -a オプションと併用すると、ファイルへ追記して出力します。



















