utte

tee 標準入力を、画面とファイルの両方に書き出す

tee [オプション] [ファイル...]

試してみる

主なオプション

-aファイルを上書きせず追記する
-i割り込みシグナル(SIGINT)を無視する

解説

基本

tee は、標準入力から受け取った内容を、標準出力とファイルの両方に書きます。名前は、配管のT字継手に由来します。パイプの途中に挟んで、流れているデータを、その場で保存できます。

リダイレクトとの違い

> でリダイレクトすると、内容はファイルに行き、画面には何も出ません。tee は、画面に表示しながら保存します。長い処理の途中経過を残したいときに便利です。

追記

既定では、ファイルを上書きします。-a を付けると、末尾に追記します。

sudo と一緒に使う

sudo echo 設定 > /etc/foo は失敗することがあります。リダイレクトを行うのは、sudo ではなく、元のシェルだからです。echo 設定 | sudo tee /etc/foo なら、書き込みを tee がするので、権限が足ります。このとき tee は標準出力にも同じ内容を出すので、不要なら > /dev/null を付けます。

注意

tee はファイルを開くとき、まず中身を空にします。読み込み元と同じファイルに書くと、内容が消えます。

このコマンドを使う問題

  1. teeでパイプの途中の結果をファイルに保存する
  2. /etc/fstabにファイルシステムのマウント設定を書く

関連するコマンド

LinuC 101の出題範囲