tee命令

tee命令

  tee表示T状物,在Linux系统中表示对于一个输入有两个输出。
  tee命令将内容同时输出到标准输出设备和多个文件中。
  使用Linux中的重定向(>)功能可以将Linux命令的输出结果重定向到文件中,例如:

[root@localhost ~]# date
Mon Oct 15 10:39:30 CST 2018
[root@localhost ~]# date > my.txt
[root@localhost ~]# cat my.txt
Mon Oct 15 10:39:35 CST 2018
[root@localhost ~]#

  使用重定向后,date命令输出的内容成功写入文件my.txt中,但这时屏幕上就不显示date命令的输出内容了,可以使用tee命令将Linux命令的结果同时输出到屏幕和文件中,例如:

[root@localhost ~]# date | tee my.txt
Mon Oct 15 10:35:36 CST 2018
[root@localhost ~]# cat my.txt
Mon Oct 15 10:35:36 CST 2018
[root@localhost ~]# date | tee my.txt
Mon Oct 15 10:35:47 CST 2018
[root@localhost ~]# cat my.txt
Mon Oct 15 10:35:47 CST 2018
[root@localhost ~]#

  可以使用选项-a对文件进行追加而非覆盖,例如:

[root@localhost ~]# cat my.txt
Mon Oct 15 10:35:47 CST 2018
[root@localhost ~]# date | tee -a my.txt
Mon Oct 15 10:35:55 CST 2018
[root@localhost ~]# cat my.txt
Mon Oct 15 10:35:47 CST 2018
Mon Oct 15 10:35:55 CST 2018

  tee命令默认只处理标准输出的内容,不处理标准错误输出的内容:

[root@localhost ~]# cat my.txt
[root@localhost ~]# date -s | tee my.txt
date: option requires an argument -- 's'
Try 'date --help' for more information.
[root@localhost ~]# cat my.txt
[root@localhost ~]#

  可以将标准错误输出重定向到标准输出,这样就可以使得tee命令也处理标准错误输出的内容:

[root@localhost ~]# cat my.txt
[root@localhost ~]# date -s 2>&1 | tee my.txt
date: option requires an argument -- 's'
Try 'date --help' for more information.
[root@localhost ~]#
[root@localhost ~]# cat my.txt
date: option requires an argument -- 's'
Try 'date --help' for more information.
[root@localhost ~]#