如何在将输出记录到文件时运行命令?

Ben*_*rel 7 io-redirection stderr

我有一个控制台应用程序,它需要作为在我的服务器上部署新应用程序版本的一部分运行。

此控制台应用程序旨在输出到控制台,并且无法更改。

我想正常运行它,但是将 stdout 和 stderr 记录到文件中,同时将它们输出到控制台。

我怎样才能在 Linux 上做到这一点?

c2h*_*2h2 10

您可以使用tee http://en.wikipedia.org/wiki/Tee_(command)

仅通过管道传输标准输出

cmd | tee log.txt | less
Run Code Online (Sandbox Code Playgroud)

要同时使用 stdout 和 stderr:

cmd >>(tee stdout.log) 2>>(tee stderr.log >&2)
Run Code Online (Sandbox Code Playgroud)


gol*_*cks 7

您可以使用tee. 例如:

ls -l / | tee tmp.txt
Run Code Online (Sandbox Code Playgroud)

将打印到标准输出,tmp.txt并将包含输出的副本。如果你想在 tmp.txt 中包含 stderr:

ls -l / 2>&1 | tee tmp.txt
Run Code Online (Sandbox Code Playgroud)