有没有办法重定向程序的输出并仍然将其发送到标准输出?

有没有办法重定向程序的输出并仍然将其发送到标准输出?

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

prog > file

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

prog > file 2>&1

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

答案1

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

$ prog 2>&1 | tee file

相关内容