有没有办法重定向程序的输出并仍然让它转到标准输出?

Jon*_*vis 25 shell io-redirection

好的。如果我想将程序的输出重定向到文件,我会做这样的事情

prog > file
Run Code Online (Sandbox Code Playgroud)

如果我想将 stdout 和 stderr 都重定向到该文件,那么我会这样做

prog > file 2>&1
Run Code Online (Sandbox Code Playgroud)

如果您希望输出转到文件,这一切都很好。但是,如果您希望输出转到文件但仍然转到 stdout/stderr 怎么办?因此,输出保存在文件中,但您仍然可以在程序运行时在控制台上看到它。有没有办法做到这一点?如果是这样,如何?

Mic*_*zek 40

tee为此目的而存在;它接受一个文件名参数并将它从标准输入读取的数据写入标准输出和文件:

$ prog 2>&1 | tee file
Run Code Online (Sandbox Code Playgroud)

  • 为了额外的 bash 4 可爱:`prog |& tee file`。 (10认同)