如何将控制台重定向/保存到文件并使其在屏幕上可见?

如何将控制台重定向/保存到文件并使其在屏幕上可见?

我想将程序的输出(stdout)保存到文件中,但仍然能够实时在屏幕上看到输出。

我需要适用于 Linux 和 Windows 的解决方案。

答案1

在 Linux 中,您可以使用该tee实用程序。

在 Windows 中,PowerShell 包含tee 命令cmd您需要下载并安装分离 公用事业

答案2

在 Linux 和类似系统上:

program | tee filename

tee程序将进入其标准输入的任何内容发送到其标准输出(如cat),并将其写入指定文件。

达到相同效果的另一种方法是

program >filename 2>/dev/null &
tail -f filename

这将在后台运行程序,将其标准输出重定向到文件,然后tail -f让您实时跟踪写入文件的数据(或几乎如此,可能只有几分之一秒的延迟)。 使2>/dev/null标准错误流消失,这样它就不会干扰 的输出tail -f

答案3

Linux:command | tee logfile

Windows:安装 cygwin,然后运行:command | tee logfile

答案4

在 Windows 中,您可以tee使用操作系统版本。它与 Linux 应用程序相同,来自coreutils 包

不过需要注意的是:tee它有自己的返回代码,因此你无法注意到传输到它的进程的错误(除非你使用的是 Linux,否则还是有办法的)。

相关内容