将命令输出写入文件和标准输出/错误

将命令输出写入文件和标准输出/错误

我有一个经常运行的命令,我喜欢将其输出定向到文件中。我这样做是这样的:

runFooBar > output.txt 2>&1

有没有办法可以将 runFooBar 输出写入文件 output.txt,同时仍然能够在命令运行时看到标准输出/错误中的输出?

我在 Linux 和 OS X 机器上运行它。

答案1

使用“tee”命令。

echo hi | tee ./file.txt

“tee”命令接收标准输入并将其重定向到指定的文件和标准输出。它因管道中的 T 形接头而得名。

答案2

将标准输出和标准错误重定向到相同的文件是:

echo Hello 2>&1 | tee some_file.txt

这会将它们放入同一个文件中。您可能希望将它们放入分离文件。您可以实现 Bash 功能,流程替代, 如下:

echo Hello > >(tee standard_output.txt) 2> >(tee standard_error.txt >&2)

相关内容