【tee】Linuxコマンド_出力ログを画面とファイルの両方に出力

LinuxOSでコマンド出力した結果は通常、その画面で表示されます。
このコマンドの出力結果を画面に出力しつつ、ファイルにも保存するには「tee」コマンドを実施します。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「tee」コマンドの使い方(Linux)

以下ではLinuxOSのバージョン確認を実施した際に出力結果をそのまま画面に表示しつつ、「ver_log」というファイルに保存した例となります。

バージョンを確認しつつ、「tee」コマンドでファイルを保存します。

$ cat /etc/redhat-release | tee ver_log
CentOS Linux release 8.5.2111

上記、画面での出力とともに、「ver_log」というファイルが作成されたことが確認できます。

$ ls
pslog  test01.txt  ver_log

ファイルを確認すると出力結果がデータとして確認できます。

$ cat ver_log 
CentOS Linux release 8.5.2111

出力ログをファイルに追加する

既に作成されたファイルを指定して「tee」コマンドを実行すると出力された結果はファイル内のデータを上書きしてしまいます。

ファイル内のデータに追加でデータを書き込む際は「-a」オプションを使用します。

上記で作成された「ver_log」ファイルのデータを確認します。

$ cat ver_log 
CentOS Linux release 8.5.2111

「tee」コマンドで「-a」オプションを使用し、「date」コマンドを実行します。

$ date | tee -a ver_log 
2022年  3月 25日 金曜日 20:47:13 JST

「date」コマンドの出力結果が「ver_log」ファイルに追加されたことが確認できます。

$ cat ver_log 
CentOS Linux release 8.5.2111
2022年  3月 25日 金曜日 20:47:13 JST

「tee」コマンドオプション

「tee」コマンドのオプションは以下の通りとなります。

$ tee --help
使用法: tee [オプション]... [ファイル]...
標準入力を各 FILE にコピーし、標準出力にも出力します。

  -a, --append              指定されたファイルに追加し、上書きしない
  -i, --ignore-interrupts   割込みシグナルを無視
  -p                        diagnose errors writing to non pipes
      --output-error[=MODE]   set behavior on write error.  See MODE below
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

MODE determines behavior with write errors on the outputs:
  'warn'         diagnose errors writing to any output
  'warn-nopipe'  diagnose errors writing to any output not a pipe
  'exit'         exit on error writing to any output
  'exit-nopipe'  exit on error writing to any output not a pipe
The default MODE for the -p option is 'warn-nopipe'.
The default operation when --output-error is not specified, is to
exit immediately on error writing to a pipe, and diagnose errors
writing to non pipe outputs.

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report tee translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/tee>
or available locally via: info '(coreutils) tee invocation'

「tee」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!