尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【Linux】tee 命令使用详解

【Linux】tee 命令使用详解 一、tee 命令概述tee是 Linux/Unix 系统中数据流分流的核心命令名称源自 T 型三通管道形象描述其功能从标准输入读取数据同时输出到屏幕标准输出和一个 / 多个文件。它完美解决 “既要实时看输出、又要留存日志” 的需求是运维调试、脚本日志、权限写入的必备工具区别于普通重定向/保留终端显示是其核心优势。二、基本语法执行命令man tee查看官方手册命令 | tee [选项] 文件名1 文件名2 ...从管道 / 标准输入读取数据同时输出到终端屏幕 指定文件支持多文件输出空格分隔即可三、命令选项及作用选项长选项作用说明-a--append追加写入文件不覆盖原有内容-i--ignore-interrupts忽略中断信号如CtrlC保证写入完整-p--output-error对非管道写入错误做诊断提示-u-无缓冲写入实时输出--help-显示帮助信息并退出--version-输出版本信息并退出四、常用命令示例1. 基础用法屏幕显示 覆盖写入文件ls -l | tee file_list.txt终端实时显示目录列表同时覆盖写入file_list.txt文件已存在则清空重写2. 追加模式不覆盖尾部添加内容echo 新增日志内容 | tee -a run.log保留文件原有数据新内容追加到末尾适合持续记录脚本 / 命令运行日志3. 同时写入多个文件dmesg | tee kernel.log /tmp/dmesg.bak一份输入同时输出到多个文件高效备份4. 忽略中断信号长时间任务必备ping www.baidu.com | tee -i ping.log按CtrlC中断时仍保证已输出内容完整写入文件5. 无缓冲实时写入监控场景tail -f access.log | tee -u realtime_backup.log禁止数据缓冲日志实时同步到备份文件6. 配合 sudo 写入权限文件经典场景普通重定向无权限tee可绕过echo export PATH\$PATH:/usr/local/bin | sudo tee -a /etc/profile直接修改系统配置文件无需切换 root 用户7. 只写入文件不显示屏幕ps aux | tee process.txt /dev/null输出重定向到黑洞仅留存文件不占用终端8. 捕获标准错误完整日志make 21 | tee build.log21将错误输出合并到标准输出完整留存编译日志五、高级应用脚本全程日志记录#!/bin/bash # 脚本功能备份数据并留存完整日志 exec 21 # 合并标准错误 exec (tee backup_$(date %Y%m%d).log) # 全程分流输出 echo 【$(date)】开始备份任务... tar -czf /backup/data.tar.gz /data/ echo 【$(date)】备份完成文件大小$(du -h /backup/data.tar.gz | awk {print $1})脚本所有输出实时显示 自动归档便于事后排查问题六、退出状态说明0所有输出目标写入成功0至少一个文件写入失败其他成功文件仍保留七、核心总结核心作用一进多出屏幕 文件同时输出默认行为覆盖写入需追加用-a高频组合sudo tee解决权限问题21捕获完整日志适用场景运维调试、脚本日志、实时监控、权限写入
返回列表