出力をファイルと標準出力にリダイレクトする方法 質問する

出力をファイルと標準出力にリダイレクトする方法 質問する

bash では、 を呼び出すと、fooそのコマンドからの出力が stdout に表示されます。

を呼び出すと、foo > outputそのコマンドからの出力がすべて指定されたファイル (この場合は「output」) にリダイレクトされます。

出力をファイルにリダイレクトしてstdout に表示する方法はありますか?

ベストアンサー1

必要なコマンドの名前はtee:

foo | tee output.file

たとえば、stdout のみを気にする場合は次のようにします。

ls -a | tee output.file

stderr を含める場合は、次のようにします。

program [arguments...] 2>&1 | tee outfile

2>&1チャネル 2 (stderr/標準エラー) をチャネル 1 (stdout/標準出力) にリダイレクトし、両方が stdout として書き込まれるようにします。また、コマンドの時点で指定された出力ファイルにも送信されますtee

さらに、ログ ファイルに追加する場合は、tee -a次のように使用します。

program [arguments...] 2>&1 | tee -a outfile

おすすめ記事