当前位置:首页>Linux>Linux tee命令|一文吃透“分流输出”,终端与文件双向留存

Linux tee命令|一文吃透“分流输出”,终端与文件双向留存

  • 2026-09-10 19:46:57
Linux tee命令|一文吃透“分流输出”,终端与文件双向留存
最近介绍了一些linux命令,大家也慢慢体会到了linux系统的艺术。今天介绍的命令就能够深度体现数据流转的艺术。有时候我们执行一条命令后,既想在终端实时看到输出结果,又想把结果保存到文件留作备份;甚至想同时把输出保存到多个文件,手动复制粘贴又太繁琐。
tee命令就能轻松解决所有问题。它就像一个“T型分流器”,一边接收命令输出,一边把内容同步给到终端和文件,高效又省心,是Linux终端里不可或缺的实用工具。
今天我就从基础到进阶,带大家吃透tee命令。
一、tee命令的作用
tee是Linux系统自带的标准命令,核心功能是:读取标准输入的数据,同时将其输出到标准输出屏幕和一个或多个文件中。
二、基础用法
tee命令的语法非常简洁,核心格式如下
command | tee [OPTION]... [FILE]...
1.基础款:边看边存,默认覆盖
这是tee最常用的场景:执行命令后,终端显示结果,同时将结果写入文件。
ls -l |tree a.txt
这里需要注意,这个不加参数会覆盖a.txt。
对比重定向:如果用ls -l > a.txt,终端不会显示任何内容,只能事后打开文件查看,灵活性远不如tee。 
2. 常用款:追加写入,不覆盖原内容
默认覆盖文件太危险?用-a选项(append,追加),可以将输出内容追加到文件末尾,不会清空原有内容,适合日志记录、分步保存输出等场景。
#示例1:追加内容到message.txtecho "Hello Linux" | tee message.txt  # 第一次写入,覆盖(若文件存在)echo "Hello tee" | tee -a message.txt # 追加写入,不会覆盖原有内容
3. 实用款:同时写入多个文件
如果需要将同一个命令的输出,同时保存到多个文件(比如一份本地备份、一份远程同步文件),不用多次执行命令,只需在tee后跟上多个文件名即可。
#示例:将echo的输出同时写入1.txt、2.txt、3.txtecho "Linux学习指南" | tee 1.txt 2.txt 3.txt
执行后效果:终端显示“Linux 学习指南”,同时三个文件都会被写入相同内容,效率直接拉满。也可以结合-a选项,同时追加到多个文件:
echo "tee命令学习" | tee -a 1.txt 2.txt 3.txt
三、进阶用法:解决实际痛点,提升效率
1. 高效用法:忽略中断信号,确保输出完整
执行长时间命令(比如编译、系统更新)时,如果不小心按了Ctrl+C中断命令,tee默认会停止写入文件,导致输出不完整。
用-i选项(忽略中断信号),即使按下Ctrl+C,tee也会继续完成文件写入,确保输出内容完整留存。
# 示例:在代码编译程序,忽略中断,确保日志完整保存make 2>&1 | tee -i build.log
2. 脚本用法:日志记录,实时监控
在shell脚本中,tee是日志记录的绝佳工具,能将脚本执行过程中的输出,同时显示在终端和日志文件中,方便实时监控和后续排查。
示例脚本(备份文件并记录日志):
#!/bin/bash#定义日志文件LOG_FILE="backup.log"#记录脚本开始时间,同时输出到终端和日志echo "[$(date +'%Y-%m-%d %H:%M:%S')] 备份开始..." | tee -a $LOG_FILE#执行备份命令,记录输出cp -r /data /data/backup | tee -a $LOG_FILE#记录备份结束时间echo "[$(date +'%Y-%m-%d %H:%M:%S')] 备份完成!" | tee -a $LOG_FILE
四、必记选项与对比:避免踩坑
  1. tee核心选项

选项

作用

示例

-a

追加写入文件,不覆盖

echo "test" | tee -a test.txt

-i

忽略中断信号(Ctrl+C)

make | tee -i build.log

2. tee vs 重定向(常见对比)
很多同学会混淆tee和重定向(>、>>),这里用表格清晰区分,避免用错:

场景

tee命令

重定向(>/>>)

实时查看输出

支持(原生功能)

不支持(仅写入文件)

写入文件

支持(覆盖/追加)

支持(覆盖/追加)

多文件写入

支持(一行命令搞定)

不支持(需多次重定向)

五、总结:tee命令的核心价值
tee命令核心用法主要包括以下2点:
1.基础:command | tee 文件名,边看边存;
2.常用:command | tee -a 文件名,追加日志;
不管是日常终端操作,还是脚本编写、系统运维,tee都是一个能帮你节省时间的小工具。赶紧动手试试,把它融入到你的Linux操作流程中吧~
#运维#linux运维#tee命令

最新文章

随机文章