tee 命令(英文:T-Splitter 第一个字符的发音)的功能为把输出同时输出到多个位置,比如可以同时输出内容到屏幕和文件,方便以多种形式查看输出内容。

tee 命令通常包含在 coreutils 包中,大多数系统默认已安装。

本文将全面的介绍 Linux 各发行版和 FreeBSD 系统中的 tee 命令具体使用方法,方便你对 tee 命令有个基本的了解。

tee 命令的语法

如下给出 tee 命令的语法结构形式:

tee [选项]... [文件]...

语法结构解释说明:

  • [选项]:用于指定的选项,控制输出的形式
  • [文件]:要写入的目标文件(可同时指定多个各文件,当指定文件时默认会输出到标准输出
  • 默认从标准输入输入内容

tee 命令使用示例

输出内容到文件

使用 | 管道符,从管道读取内容,输出到文件(默认同时会在标准输出输出内容):

ls -l | tee content.txt

输出内容到多个文件

指定多个文件,tee 命令可以把内容同时保存到多个文件当中:

dmesg | tee system.log boot.log

把内容追加到文件的尾部

使用 -a 选项,把内容附加在文件的尾部,而不是覆盖原文件的内容:

echo "append content" | tee -a logfile.txt

忽略写入错误继续执行

使用 -i 选项指定忽略写入时的错误,即:当发生写入错误时,不是终止写入,而是继续写入内容:

cat content.txt | tee -i output1.txt output2.txt

命令选项详解

选项 说明 参数示例
-a, --append 把内容追加到文件的尾部,而不是覆盖原来的内容 tee -a log.txt
-i, --ignore-interrupts 写入时忽略中断信号 tee -i output.log
-p, --output-error 指定错误处理模式:
warn(警告)
warn-nopipe(管道错误警告)
exit(立即退出)
exit-nopipe(管道错误退出)
-p warn-nopipe
--help 显示帮助信息
--version 显示版本信息

对于错误处理模式的解释说明:

  • warn:写入错误时显示警告但继续写入内容
  • warn-nopipe:管道中断时警告但继续写入内容,该项为默认值
  • exit:发生任何错误时立即退出,终止写入内容
  • exit-nopipe:管道中断时立即退出,终止写入内容

结语

本文全面的介绍了 tee 的语法结构及其功能,并给出了 tee 命令的具体使用示例,相信你能够对 tee 命令有个基本的了解,并帮助你正确的使用 tee 控制内容的输出形式。 tee 命令可以在 Linux 各发行版和 FreeBSD 系统中使用,基本功能是相同的。