插件窝 干货文章 Linux tee命令详解

Linux tee命令详解

文件 输出 命令 tee 804    来源:    2025-05-01

Linux tee命令详解

tee命令是Linux/Unix系统中一个非常实用的工具,它能够从标准输入读取数据,同时将数据写入标准输出和指定的文件中。

基本语法

command | tee [OPTION]... [FILE]...

主要功能

  1. 同时输出到屏幕和文件:将命令的输出既显示在屏幕上,又保存到文件中
  2. 管道中间操作:在管道中作为中间环节使用,不影响数据流

常用选项

选项 描述
-a--append 追加到文件而不是覆盖
-i--ignore-interrupts 忽略中断信号
--help 显示帮助信息
--version 显示版本信息

使用示例

1. 基本用法

ls -l | tee filelist.txt

ls -l的结果显示在屏幕上,同时保存到filelist.txt文件中

2. 追加内容到文件

echo "New line" | tee -a filelist.txt

将"New line"追加到filelist.txt文件末尾,而不是覆盖原有内容

3. 保存到多个文件

dmesg | tee file1.txt file2.txt file3.txt

dmesg命令的输出保存到三个不同的文件中

4. 与sudo配合使用

echo "new line" | sudo tee -a /etc/file.conf

当需要向需要root权限的文件写入内容时,可以使用sudo tee

5. 忽略中断信号

ping example.com | tee -i ping.log

即使使用Ctrl+C中断命令,也能保证已捕获的数据写入文件

6. 结合其他命令使用

ls -l | tee directory_listing.txt | grep "\.txt$"

将目录列表保存到文件,同时只筛选出.txt文件显示在屏幕上

高级用法

1. 同时输出到文件和另一个命令

ls -l | tee filelist.txt | wc -l

保存文件列表到filelist.txt,同时计算文件数量

2. 调试脚本输出

./script.sh | tee script_output.log

运行脚本并同时查看输出和保存日志

3. 多级管道中的使用

command1 | tee intermediate.log | command2 | tee final.log

在复杂的管道中记录中间结果

注意事项

  1. 默认情况下,tee会覆盖目标文件,使用-a选项可以追加内容
  2. 当写入需要root权限的文件时,确保在tee前使用sudo而不是整个命令
  3. tee不会缓冲输出,数据会立即写入文件和标准输出

tee命令在系统管理、日志记录和调试过程中非常有用,能够帮助管理员同时查看和保存命令输出。