今回は、
標準入力を標準出力とファイルに出力するteeコマンドについてまとめたいと思います。
まず、いつも通りにマニュアルを確認。
$ man tee
tee(1) tee( 1)
名前
tee - 標準入力から読んだ内容を標準出力とファイルとに書き出す
書式
tee [-ai] [--append] [--ignore-interrupts] [file...] tee [--help] [--version]
説明
tee コマンドは標準入力を、標準出力と引数で与えられた全てのフ ァイルとにコピーする。何らかのデータをパイプに送るとき、同 時 にそのコピーを保存しておきたいときに便利だろう。 存 在しないファイルに書き出そうとすると、このファイルは作成さ れる。もしすでに存在しているファイルに書き出そうとすると、 -a オプションを使わない限り、以前の内容は上書きされる。
オプション
-a, --append ファイル内容を上書きせずに、標準入力をファイルに追加す る。
-i, --ignore-interrupts 割り込みシグナルを無視する。
--help 標準出力に使用方法のメッセージを出力して正常終了する。
--version 標準出力にバージョン情報を出力して正常終了する。
試してみる。
$ ll /etc/selinux/
合計 24
-rw-r--r--. 1 root root 457 9月 30 19:54 2013 config
-rw-r--r--. 1 root root 458 9月 27 15:57 2013 config.orig
-rw-r--r--. 1 root root 113 2月 22 14:38 2013 restorecond.conf
-rw-r--r--. 1 root root 76 2月 22 14:38 2013 restorecond_user.conf
-rw-r--r--. 1 root root 2271 2月 22 09:21 2013 semanage.conf
drwxr-xr-x. 6 root root 4096 9月 30 13:02 2013 targeted
$ ll /etc/selinux/ | tee hoge.txt
合計 24
-rw-r--r--. 1 root root 457 9月 30 19:54 2013 config
-rw-r--r--. 1 root root 458 9月 27 15:57 2013 config.orig
-rw-r--r--. 1 root root 113 2月 22 14:38 2013 restorecond.conf
-rw-r--r--. 1 root root 76 2月 22 14:38 2013 restorecond_user.conf
-rw-r--r--. 1 root root 2271 2月 22 09:21 2013 semanage.conf
drwxr-xr-x. 6 root root 4096 9月 30 13:02 2013 targeted
$ cat hoge.txt
合計 24
-rw-r--r--. 1 root root 457 9月 30 19:54 2013 config
-rw-r--r--. 1 root root 458 9月 27 15:57 2013 config.orig
-rw-r--r--. 1 root root 113 2月 22 14:38 2013 restorecond.conf
-rw-r--r--. 1 root root 76 2月 22 14:38 2013 restorecond_user.conf
-rw-r--r--. 1 root root 2271 2月 22 09:21 2013 semanage.conf
drwxr-xr-x. 6 root root 4096 9月 30 13:02 2013 targeted
ファイルのリスト作成やログのファイルへの記録等、色々な場面で便利そうですね!
最後になりますが、このteeの名前はTに由来するようです。
入力が2つに分岐する様を表すアルファベットですね。
こんな感じで、
標準入力 T標準出力
ファイル
以上です!
【参考サイト】
『【 tee 】 標準入力を標準出力とファイルに出力する』
『Linux LPIC - Redirect / Pipe / tee』