本文参考How to redirect output to a file and stdout。
对于任意原本默认输出到标准输出stdout
的程序或命令foo
,只需执行
foo | tee output.file
即可同时输出到output.file
文件。
例如,若想输出当前目录下的所有目录与文件到标准输出stdout
的同时保存到output.file
文件,执行
ls -a | tee output.file
如果同时想输出程序或命令的标准错误stderr
到标准输出和文件,只需添加2>&1
即可:
program [arguments...] 2>&1 | tee outfile
2>&1
的含义是将 channel 2(标准错误stderr
)重定向到 channel 1(标准输出stdout
),这样标准输出和标准错误的内容都将输出到标准输出。
如果想将输出内容附加到outfile
文件(而非覆写),只需添加-A
参数:
program [arguments...] 2>&1 | tee -a outfile