怎么同时输出到标准输出(Stdout)和文件

unix 一般的终端程序运行可以通过重定向将标准输出重定向到文件,那么如果需要同时输出到标准输出和文件要怎么办呢?tee命令就是干这个用的。

比如今天我要跑Sympy的测试,但是又想把测试结果到处到test.log文件,就可以使用如下命令:

./bin/test |tee test.log

tee 命令还有一些其他选项,比如-a可以追加到指定文件而不是直接覆盖。

Usage: d:\Dropbox\bin\tee.exe [OPTION]... [FILE]...

  -a, --append              append to the given FILEs, do not overwrite
  -i, --ignore-interrupts   ignore interrupt signals
      --help                display this help and exit
      --version             output version information and exit

Wiki有一个很形象的图解释tee的用途(将文件详细信息同时答应到终端和file.txt),引用到这里:

tee

亲,给点评论吧!