BETA

【Linux】teeコマンド

投稿日:2020-02-10
最終更新:2020-02-12

Linuxの標準出力をファイルに保存する時にリダイレクトがよく使われます。
しかしながら、仕組み上ターミナル画面には何も出なくなるため、
画面の出力も同時に見たい場面では困ります。
そのような場面で活躍するのが、標準出力しつつ、ファイルへ保存も可能な「tee」コマンドです。

例) リダイレクトの場合

$ yum check-update bash > update-redirect.log  
$ cat update-redirect.log  
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd  

bash.x86_64                      4.2.46-33.amzn2                      amzn2-core  

yum check-update bashの出力が画面がファイルへ保存されるが、ターミナルには出力されない

例) teeコマンドの場合

$ yum check-update bash | tee update-tee.log  
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd  

bash.x86_64                      4.2.46-33.amzn2                      amzn2-core  
$ cat update-tee.log  
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd  

bash.x86_64                      4.2.46-33.amzn2                      amzn2-core  

yum check-update bashの出力画面がターミナルに出ている&ファイルにも保存されている

teeの便利な使い方

リダイレクト先に書き込むときにrootの権限が必要なファイルへ出力する場合にも使えます

例)リダイレクトで書き込み不可

$ echo 'Hello World' > /var/www/html/index.html  
-bash: /var/www/html/index.html: Permission denied  

権限が足りない

例)リダイレクトで書き込み不可2

$ sudo echo 'Hello World' > /var/www/html/index.html  
-bash: /var/www/html/index.html: Permission denied  

もちろんこれも権限が足りない

例)sudo teeで書き込みする

$ echo 'Hello World' | sudo tee /var/www/html/index.html  
Hello World  
$ cat /var/www/html/index.html  
Hello World  

書き込みできました!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

しがないインフラエンジニア屋さんです。いままでローカルのメモ的なテキストでしかアウトプットしてなかったので、ちょっとずつここに記していくよ(不定期更新)

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう