teeは標準入力から読み取り、標準出力とファイルに書き込みます。teeを圧縮ファイル
teeが圧縮ファイルに書き込むことは可能ですか?
some_command |& tee -some_option log.bz2
teeできない場合は、他のコマンドはありますか?
私は
some_command |& bzip2 > log.bz2
で圧縮されたファイルに出力をリダイレクトすることができます。しかし、このコマンドを使用して、標準出力に出力が不足しています。
teeは標準入力から読み取り、標準出力とファイルに書き込みます。teeを圧縮ファイル
teeが圧縮ファイルに書き込むことは可能ですか?
some_command |& tee -some_option log.bz2
teeできない場合は、他のコマンドはありますか?
私は
some_command |& bzip2 > log.bz2
で圧縮されたファイルに出力をリダイレクトすることができます。しかし、このコマンドを使用して、標準出力に出力が不足しています。
あなたがstderrにあなたの出力を有するOKであれば、あなたはそれをリダイレクトすることができます
some_command | tee /dev/stderr | bzip2 > log.bz2
これは、stdoutとstderr(| tee /dev/stderr
)の両方に出力をティー。その後、bzip2のにもパイプSTDOUT(| bzip2 > log.bz2
)
あなたのシェルがbash
(バージョン4.x)である場合、あなたは'process substitution'を持っている、とあなたが使用できます。
some_command 2>&1 | tee >(bzip2 -c > log.bz2)
これはに標準エラーと標準出力をリダイレクトtee
(|&
と同じですが、私は古典的な表記を好む)。 tee
の出力は、ファイルではなくプロセスに送られます。プロセスはbzip2 -c > log.bz2
であり、その標準入力を圧縮形式で標準出力に書き出します。出力の他の(非圧縮の)コピーはもちろん、標準出力に直接送られます。
最後の '2>&1'は、' bzip2'によって生成されたエラーメッセージが出力ファイル 'log.bz2'に書き込まれることを意味します。単にそのリダイレクトを削除すれば、すべての言及とビジネスにつながります。 –
うーん、よかった。 – craig65535