Linux 的 tee 命令

tee 是 Linux 中一个非常有用的命令行工具,它能够从标准输入读取数据,同时将数据写入标准输出和一个或多个文件。

基本语法

command | tee [options] file1 file2 ...

主要功能

  1. 双重输出:将命令输出同时显示在终端并保存到文件中
  2. 多文件写入:可以将输出同时写入多个文件
  3. 追加模式:可以选择追加到文件而不是覆盖原有内容

常用选项

  • -a 或 --append:以追加模式写入文件,而不是覆盖
  • -i 或 --ignore-interrupts:忽略中断信号
  • --help:显示帮助信息
  • --version:显示版本信息

使用示例

基础用法

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 组合使用,创建复杂的数据处理流程。

实际应用场景

  1. 调试脚本:在脚本执行时同时查看输出和记录日志
  2. 长期运行任务:监控长时间运行任务的进度并保存结果
  3. 系统管理:记录重要系统命令的输出
  4. 数据分析:在处理数据流时保存中间结果

注意事项

  1. 如果不使用 -a 选项,目标文件会被覆盖
  2. tee 默认会创建新文件,如果文件已存在且没有写权限会报错
  3. 当处理大量数据时,tee 可能会成为性能瓶颈

tee 命令虽然简单,但在日常系统管理和数据处理中非常实用,特别是在需要同时查看和保存命令输出的场景下。

相关推荐
小白的码BUG之路31 分钟前
linux -- ssh两台机器相连
运维·服务器·ssh
缓慢更新2 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
续写烂尾3 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
不昀3 小时前
网口Link Up后仍然掉线,怎样区分物理链路和数据通路问题?
linux·以太网
迪康妍妍3 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn3 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
科技小E3 小时前
监控设备品牌杂乱无法互通?EasyGBS打通孤岛,统一汇聚视频
服务器·网络·音视频
Lhan.zzZ3 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
zxcvb1534 小时前
运维经验分享:监控网页更新内容的几种思路
运维
Fcy6484 小时前
Linux下 多路转接select详解
linux·select·多路转接