一尘不染

如何将输出重定向到文件和标准输出

linux

在bash中,调用foo将在stdout上显示该命令的任何输出。

调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为“输出”)。

有没有一种方法可以将输出重定向到文件 在stdout上显示?


阅读 368

收藏
2020-06-02

共1个答案

一尘不染

您想要的命令名为 tee

foo | tee output.file

例如,如果您只关心标准输出:

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
2020-06-02