当前位置:首页>Linux>Linux基础 | tee命令使用指南:一条命令同时输出到屏幕和文件

Linux基础 | tee命令使用指南:一条命令同时输出到屏幕和文件

  • 2026-09-18 19:29:03
Linux基础 | tee命令使用指南:一条命令同时输出到屏幕和文件
在使用 Linux 命令行时,我们经常会遇到这样的需求:
想把命令结果保存到文件
同时又希望在终端看到输出
例如:
ls > result.txt
这样确实能把结果保存到文件,但问题是:终端不会显示输出内容。
如果想既保存又显示,就需要一个非常实用的工具:tee
tee 是 Linux 管道工具中非常经典的命令之一,它的作用是:将标准输入同时输出到终端和文件。
可以理解为:
输入数据 → tee → 同时输出到屏幕 + 文件
掌握 tee 后,在日志记录、调试脚本和自动化运维中都会非常方便。

一、tee 命令基本语法

基本格式:
tee [选项] 文件
通常搭配管道使用:
命令 | tee 文件
含义:
命令输出 → tee → 显示在终端 + 写入文件

二、最基础的使用示例

假设我们查看当前目录文件:
ls | tee filelist.txt
执行后会发生两件事:
文件列表显示在终端
同样的内容被写入 filelist.txt
例如输出:

file1.txt

file2.txt

file3.txt

同时 filelist.txt 也会包含相同内容。

三、保存日志同时查看输出

tee 在脚本调试和日志记录中非常常见。
例如查看系统信息:
uname -a | tee system_info.txt
结果:
屏幕显示系统信息
同时写入 system_info.txt
如果后续需要分析日志文件,就可以直接查看保存的文件。

四、追加写入文件(-a 参数)

默认情况下,tee 会覆盖文件内容。
如果希望追加写入,需要使用 -a 参数。
示例:
date | tee -a log.txt
每执行一次:
当前时间
都会追加到 log.txt 文件末尾。
例如:
Mon Mar 10 10:00:01
Mon Mar 10 10:05:01
Mon Mar 10 10:10:01
这在持续记录日志时非常实用。

五、同时写入多个文件

tee 还支持同时写入多个文件。
示例:
echo "Hello Linux" | tee file1.txt file2.txt
执行后:
file1.txt
file2.txt
都会写入:
Hello Linux
同时终端也会显示。

六、结合管道的经典用法

tee 最大的价值是结合管道使用。
例如统计当前目录文件数量:
ls | tee list.txt | wc -l
执行流程:
ls 输出
→ tee 保存文件列表
→ wc -l 统计数量
最终结果:
list.txt 保存文件列表
终端显示文件数量
这就是 Linux 命令行的数据流思想。

七、在脚本中记录执行日志

tee 在自动化脚本中非常常见。
例如:
#!/bin/bashecho "开始备份..."tar -czf backup.tar.gz /data | tee backup.logecho "备份完成"
执行脚本时:
终端实时显示输出
同时日志写入 backup.log
这样既方便监控,又方便排错。

八、与重定向符号的区别

很多初学者会把 tee 和重定向混淆。
对比:
方式
效果
>
只写入文件
>>
追加写入文件
tee
同时输出到终端和文件
示例:
ls > list.txt
终端不会显示内容。
而:
ls | tee list.txt
终端和文件都会有输出。

九、结合 sudo 写入系统文件

有时候普通重定向会失败,例如:
echo "test" > /etc/test.conf
因为权限不足。
可以使用 tee:
echo "test" | sudo tee /etc/test.conf
这样就能成功写入系统文件。
这是 tee 非常经典的一个技巧。

十、小结

tee 是 Linux 管道工具中非常重要的命令,它的核心能力是:同时输出数据到终端和文件。
常见使用场景包括:
  • 保存命令输出日志
  • 脚本调试与监控
  • 管道数据分流
  • 写入需要 sudo 权限的文件
常用参数总结:
参数
作用
-a
追加写入文件
一句话总结:tee 就像一个“数据分流器”,让命令输出既能保存又能实时查看。
如果你正在学习 Linux 命令行工具,tee 和 xargs 一样,都是必须掌握的核心命令。

最新文章

随机文章