![是否可以将输出重定向到多个设备?](https://linux22.com/image/1296983/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%B0%86%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%A4%9A%E4%B8%AA%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
是否可以将输出重定向到多个设备/文件?
program.exe 1> output1.txt 1>output2.txt
这仅output2.txt
在 Windows 中产生。
答案1
tee
是一个命令,可让您在 *nix 机器上灵活地将输出重定向到多个文件。
从手册页中 -
DESCRIPTION
The tee utility copies standard input to standard output,
making a copy in zero or more files. The output is unbuffered.
在 Windows 上,你可以使用类似这。
答案2
如果您使用的是 Unix/Linux shell 或 Windows 上的 Cygwin,则可以使用 tee 将 stdin 复制到多个输出文件:
program.exe | tee output1.txt >output2.txt
不确定本机 Windows cmd.exe 中是否有等效项。
大多数 shell(例如 bash)都允许您合并 stdout 和 stderr。以下是从 program.exe 合并 stdout 和 stderr 并将其导入 tee 的语法。2>&1
表示将文件描述符 2(stderr)的输出重定向到文件描述符 1(stdout)
program.exe 2>&1 | tee output1.txt >output2.txt