GNU Core Utilities/tee
表示
tee コマンドは、標準入力からのデータを標準出力に表示するとともに、指定されたファイルにも書き込むためのコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
[編集]tee [オプション] ファイル...
主なオプション(GNU coreutils版)
[編集]主なオプション オプション 説明 -a, --append既存のファイルにデータを追記する -i, --ignore-interruptsインタラプト信号を無視する -p, --pipe複数のファイルに同時に書き込む -v, --verbose書き込み先のファイル名を表示 -u, --unbuffered出力をバッファリングせずに行う
例
[編集]標準入力を標準出力とファイルに書き込む
[編集]echo "Hello, World!" | tee output.txt
標準入力("Hello, World!")を標準出力に表示し、同時に output.txt に書き込む。
ファイルに追記する
[編集]echo "New Line" | tee -a output.txt
標準入力("New Line")を output.txt に追記する。
複数のファイルに同時に書き込む
[編集]echo "Multiple files" | tee file1.txt file2.txt
標準入力("Multiple files")を file1.txt と file2.txt の両方に書き込む。
インタラプト信号を無視して動作する
[編集]echo "Data" | tee -i output.txt
インタラプト信号を無視して output.txt に書き込む。
バッファリングせずに出力する
[編集]echo "Unbuffered Output" | tee -u output.txt
標準入力("Unbuffered Output")をバッファリングせずに output.txt に書き込み、標準出力にも表示する。
FreeBSD 版との違い
[編集]FreeBSD でも tee コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
[編集]-p(複数のファイルに同時に書き込む)オプションがない- FreeBSD の
teeには-pオプションがありません。複数のファイルに書き込むには、複数回teeを使用するか、シェルのリダイレクトを利用する必要があります。
- FreeBSD の
- GNU coreutils 版を FreeBSD で使う方法
coreutilsパッケージをインストールするとgteeという名前で GNU 版のteeが使える。
pkg install coreutils gtee -a output.txt # GNU版の tee を使用
詳しくは、それぞれの環境で man tee を確認してください。