連載
» 2016年11月16日 05時00分 UPDATE

Linux基本コマンドTips(65):【 tee 】コマンド――標準出力とファイルの両方に出力する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「tee」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、標準入力から受け取った内容を、標準出力とファイルの両方に出力する「tee」コマンドです。

teeコマンドとは?

 「tee」は標準入力から受け取った内容を、標準出力とファイルに書き出すコマンドです。ファイルへの保存と標準出力への出力を同時に行ったり、複数のファイルに出力したりすることができます。


teeコマンドの書式

コマンド1 | tee ファイル | コマンド2

コマンド | tee ファイル1 ファイル2 ファイル3……




teeコマンドの主なオプション

 teeコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-a --append 指定したファイルが既に存在する場合、上書きせずに追加する(リダイレクトの「>>」に相当)
-i --ignore-interrupts 割り込みシグナルを無視する


ファイルへのリダイレクトとパイプを同時に行う

 「コマンド > ファイル」と「コマンド | コマンド」を同時に実行したい場合は、「コマンド | tee ファイル名 | コマンド」のように指定します。

 例えば、以下のコマンド実行例では、「find」コマンドで「/bin」と「/usr/bin」にあるファイルを出力し、その結果を「cmdlist」というファイルに保存しつつ、「less」コマンドで閲覧しています。

コマンド実行例

find /bin /usr/bin -type f | tee cmdlist | less

(findコマンドの結果をファイル「cmdlist」に保存し、さらにlessコマンドで閲覧する)(画面1


画面1 画面1 findコマンドの実行結果をファイルと標準出力の両方に出力した

 なお、「find ディレクトリ」で、指定したディレクトリのファイルをパス名付きで一覧表示することができます。「-type f」はファイルのみという指定です。



複数のファイルに保存する

 「コマンド | tee ファイル1 ファイル2 ファイル3……」と指定すると、受け取ったコマンドの実行結果を複数のファイルに保存することができます。

 teeコマンドでは、標準出力にも結果が出力されます。ファイルへの保存だけで画面には出力したくない場合は、出力の1つをteeコマンドからのリダイレクトで保存します。

 例えば、「a.lst」「b.lst」「c.lst」には保存し、画面には出力しないのであれば「コマンド | tee a.lst b.lst > c.lst」のように指定します。

コマンド実行例

ls | a.lst b.lst c.lst

(lsコマンドの結果を「a.lst」「b.lst」「c.lst」に保存し、画面(標準出力)にも出力する)(画面2

ls | a.lst b.lst > c.lst

(lsコマンドの結果を「a.lst」「b.lst」「 c.lst」に保存し、画面には表示しない)


画面2 画面2 コマンドの実行結果を複数のファイルに保存し、画面(標準出力)にも出力した


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。