tee コマンド チートシート

基本構文

command | tee [OPTION]... [FILE]...

基本的な使い方

1. 標準出力を表示しつつファイルに書き込む

ls -l | tee output.txt

2. 既存のファイルに追記する

ls -l | tee -a output.txt

3. 複数のファイルに書き込む

echo "Hello, world!" | tee file1.txt file2.txt

4. sudo でログを取りながらコマンドを実行する

echo "Secure update" | sudo tee /etc/example.conf

5. コマンドのエラーメッセージを含めて出力を記録する

command 2>&1 | tee output.log

オプション一覧

オプション 説明
-a, --append 既存のファイルに追記する
-i, --ignore-interrupts 中断シグナル (Ctrl+C) を無視する
--help ヘルプを表示する
--version バージョン情報を表示する

応用例

1. スクリプトの実行ログを保存する

./script.sh | tee script.log

2. dmesg の出力をリアルタイムに記録する

dmesg | tee -a dmesg.log

3. コマンドの出力を複数のファイルに保存する

ls -l | tee file1.txt file2.txt file3.txt

4. sudo を使ってシステム設定を書き換える

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

5. cron ジョブのログを記録する

0 * * * * /path/to/script.sh | tee -a /var/log/script.log

まとめ

tee コマンドは、標準出力をリアルタイムにファイルへ保存する便利なツールである。-a オプションで追記、2>&1 で標準エラー出力を含めることで、ログの取得が容易になる。

man teeより引用


TEE(1)                                                                 User Commands                                                                 TEE(1)

NAME
       tee - read from standard input and write to standard output and files

SYNOPSIS
       tee [OPTION]... [FILE]...

DESCRIPTION
       Copy standard input to each FILE, and also to standard output.

       -a, --append
              append to the given FILEs, do not overwrite

       -i, --ignore-interrupts
              ignore interrupt signals

       -p     operate in a more appropriate MODE with pipes.

       --output-error[=MODE]
              set behavior on write error.  See MODE below

       --help display this help and exit

       --version
              output version information and exit

   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'.  With "nopipe" MODEs, exit immediately if all outputs become broken pipes.  The default opera‐
       tion when --output-error is not specified, is to exit immediately on error writing to a pipe, and diagnose errors writing to non pipe outputs.

AUTHOR
       Written by Mike Parker, Richard M. Stallman, and David MacKenzie.

REPORTING BUGS
       GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
       Report any translation bugs to <https://translationproject.org/team/>

COPYRIGHT
       Copyright © 2023 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
       This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       Full documentation <https://www.gnu.org/software/coreutils/tee>
       or available locally via: info '(coreutils) tee invocation'

GNU coreutils 9.4                                                        April 2024                                                                  TEE(1)