tee 是 Linux 中一个非常有用的命令行工具,它能够从标准输入读取数据,同时将数据写入标准输出和一个或多个文件。
基本语法
command | tee [options] file1 file2 ...
主要功能
- 双重输出:将命令输出同时显示在终端并保存到文件中
- 多文件写入:可以将输出同时写入多个文件
- 追加模式:可以选择追加到文件而不是覆盖原有内容
常用选项
使用示例
基础用法
bash
ls -l | tee directory_listing.txt
这个命令会将 ls -l 的输出显示在终端,同时保存到 directory_listing.txt 文件中。
追加模式
bash
echo "New line" | tee -a existing_file.txt
使用 -a 选项将内容追加到文件末尾而不是覆盖。
写入多个文件
bash
dmesg | tee system_log1.txt system_log2.txt
将 dmesg 命令的输出同时写入两个不同的文件。
与 sudo 结合使用
bash
echo "127.0.0.1 example.com" | sudo tee -a /etc/hosts
当需要向需要 root 权限的文件写入内容时,这种组合非常有用。
管道组合
bash
command1 | tee file1.txt | command2 | tee file2.txt | command3
可以将多个命令和 tee 组合使用,创建复杂的数据处理流程。
实际应用场景
- 调试脚本:在脚本执行时同时查看输出和记录日志
- 长期运行任务:监控长时间运行任务的进度并保存结果
- 系统管理:记录重要系统命令的输出
- 数据分析:在处理数据流时保存中间结果
注意事项
tee 命令虽然简单,但在日常系统管理和数据处理中非常实用,特别是在需要同时查看和保存命令输出的场景下。