STDOUTとSTDERRのいずれかをリダイレクトせずに(現在の日付など)コンテンツを印刷したいと思います。
私は試した:
date 1>&2
しかし、これは単にstdoutをstderrにリダイレクトするようですが、これは私が望むものではありません。同じファイルにマージせずに両方を印刷したいです。
役に立つと確信していますが、どのようにtee
使用するのかわかりません。
ベストアンサー1
何が必要なのか理解している場合は、tee
次のコマンドが解決策です。
your_command 2>&1 | tee /dev/stderr
コマンドの出力(つまりerrors date
)は標準出力(使用)にリダイレクトされます2>&1
。コマンドを使用すると結果が2倍になりますtee
。
- 1を標準出力に。
- パラメータの2番目のファイル:
/dev/stderr
その後、コマンドの結果は次のようになりdate
ます。
> date 2>&1 | tee /dev/stderr
Sun Dec 11 16:33:35 CET 2022
Sun Dec 11 16:33:35 CET 2022
したがって、>
/>>
および / を使用して目的のファイルに2>
リダイレクトできます。2>>
> date 2>&1 | tee /dev/stderr >file1 2>file2
> cat file1
Sun Dec 11 16:40:59 CET 2022
> cat file2
Sun Dec 11 16:40:59 CET 2022
エラーが発生した場合は、誤ったコマンドを使用してください。例datex
:
> datex 2>&1 | tee /dev/stderr >file1 2>file2
> cat file1
bash: datex: command not found...
> cat file2
bash: datex: command not found...