![如何在将输出记录到文件时运行命令?](https://linux22.com/image/50183/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%B0%86%E8%BE%93%E5%87%BA%E8%AE%B0%E5%BD%95%E5%88%B0%E6%96%87%E4%BB%B6%E6%97%B6%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我有一个控制台应用程序,需要作为在我的服务器上部署新应用程序版本的一部分来运行。
该控制台应用程序旨在输出到控制台,并且无法更改。
我想正常运行它,但将 stdout 和 stderr 记录到文件中,同时将它们输出到控制台。
我怎样才能在 Linux 上做到这一点?
答案1
您可以使用tee
http://en.wikipedia.org/wiki/Tee_(命令)
仅通过管道传输标准输出
cmd | tee log.txt | less
要同时传输 stdout 和 stderr:
cmd >>(tee stdout.log) 2>>(tee stderr.log >&2)
答案2
您可以使用tee
。例如:
ls -l / | tee tmp.txt
将打印到标准输出,并将tmp.txt
包含输出的副本。如果你想在 tmp.txt 中包含 stderr:
ls -l / 2>&1 | tee tmp.txt