当前位置: 首页 > news >正文

Linux系统——tee命令

目录

一、命令简介

二、命令使用

1.命令帮助

2.查看块设备列表并记录到文件存档

3.重复多次标准输入内容

4.将文件复制多份

5.静默输出到文件

6.使用追加方式写入文件

7.将错误信息也输出到文件

8.直接通过键盘往文件输入

9.参数使用案例

三、选项


一、命令简介

tee命令的作用就是读取标准输入内容,将读取到的数据写到标准输出和文件。应用场景一就是有时候我们希望操作命令既显示到屏幕又保存到文档,tee命令是我们的不二选择;应用场景二是重复展示输入内容;应用场景三是可以将文件同时复制多份。当然tee命令还可以与其他命令结合使用,组合达到我们期待的效果。

二、命令使用

1.命令帮助

[root@localhost ~]#tee --help
用法:tee [选项]... [文件]...
将标准输入复制到每个指定文件,并显示到标准输出。-a, --append		内容追加到给定的文件而非覆盖-i, --ignore-interrupts	忽略中断信号--help		显示此帮助信息并退出--version		显示版本信息并退出如果文件指定为"-",则将输入内容复制到标准输出。GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告tee 的翻译错误
要获取完整文档,请运行:info coreutils 'tee invocation'
[root@localhost ~]#tee --version
tee (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。由Mike Parker、Richard M. Stallman 和David MacKenzie 编写。

2.查看块设备列表并记录到文件存档

[root@localhost ~]#lsblk|tee lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part ├─centos-root 253:0    0   50G  0 lvm  /└─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  
[root@localhost ~]#lsblk|tee lsblk.a.txt
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part ├─centos-root 253:0    0   50G  0 lvm  /└─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  
[root@localhost ~]#ls
anaconda-ks.cfg       lsblk.a.txt                模板  文档  桌面
initial-setup-ks.cfg  webmin-2.100-1.noarch.rpm  视频  下载
lsblk                 公共                       图片  音乐
[root@localhost ~]#cat lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part ├─centos-root 253:0    0   50G  0 lvm  /└─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom

3.重复多次标准输入内容

[root@localhost ~]#echo “----------welcome back---------” | tee - - - - -
“----------welcome back---------”
“----------welcome back---------”
“----------welcome back---------”
“----------welcome back---------”
“----------welcome back---------”
“----------welcome back---------”

4.将文件复制多份

[root@localhost ~]#cat lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part ├─centos-root 253:0    0   50G  0 lvm  /└─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  
[root@localhost ~]#cat lsblk |tee a.txt b.txt c.txt
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part ├─centos-root 253:0    0   50G  0 lvm  /└─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  
[root@localhost ~]#ls
anaconda-ks.cfg  c.txt                 webmin-2.100-1.noarch.rpm  视频  下载
a.txt            initial-setup-ks.cfg  公共                       图片  音乐
b.txt            lsblk                 模板                       文档  桌面
[root@localhost ~]#cat a.txt 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part ├─centos-root 253:0    0   50G  0 lvm  /└─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  

5.静默输出到文件

[root@localhost ~]#hostname
localhost.localdomain
[root@localhost ~]#hostname|tee a.txt > /dev/null
[root@localhost ~]#ls
anaconda-ks.cfg       lsblk                      模板  文档  桌面
a.txt                 webmin-2.100-1.noarch.rpm  视频  下载
initial-setup-ks.cfg  公共                       图片  音乐
[root@localhost ~]#cat a.txt 
localhost.localdomain

效果等同于echo “  ”> a.txt

6.使用追加方式写入文件

[root@localhost ~]#df|tee -a df.txt
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 52403200 5294720 47108480   11% /
devtmpfs                  917604       0   917604    0% /dev
tmpfs                     933524       0   933524    0% /dev/shm
tmpfs                     933524   17476   916048    2% /run
tmpfs                     933524       0   933524    0% /sys/fs/cgroup
/dev/sda1                5232640  182368  5050272    4% /boot
tmpfs                     186708      12   186696    1% /run/user/42
tmpfs                     186708       0   186708    0% /run/user/0
[root@localhost ~]#ls
anaconda-ks.cfg  initial-setup-ks.cfg       公共  视频  文档  音乐
df.txt           webmin-2.100-1.noarch.rpm  模板  图片  下载  桌面
[root@localhost ~]#cat df.txt 
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 52403200 5294720 47108480   11% /
devtmpfs                  917604       0   917604    0% /dev
tmpfs                     933524       0   933524    0% /dev/shm
tmpfs                     933524   17476   916048    2% /run
tmpfs                     933524       0   933524    0% /sys/fs/cgroup
/dev/sda1                5232640  182368  5050272    4% /boot
tmpfs                     186708      12   186696    1% /run/user/42
tmpfs                     186708       0   186708    0% /run/user/0

7.将错误信息也输出到文件

tee命令默认之将标准输入的普通信息输出到文件,错误信息丢弃,通过如下方式可以实现将错误信息也同步输入到文件

[root@localhost ~]#ls "*" 2>&1|tee a.txt
ls: 无法访问*: 没有那个文件或目录
[root@localhost ~]#ls
a                initial-setup-ks.cfg       模板  文档  桌面
anaconda-ks.cfg  webmin-2.100-1.noarch.rpm  视频  下载
a.txt            公共                       图片  音乐
[root@localhost ~]#cat a
[root@localhost ~]#cat a.txt 
ls: 无法访问*: 没有那个文件或目录

8.直接通过键盘往文件输入

使用ctrl+D命令结束输入。

[root@localhost ~]#tee a.txt > /dev/null
1
2
3
cxk
wyb
[root@localhost ~]#ls
anaconda-ks.cfg  initial-setup-ks.cfg       公共  视频  文档  音乐
a.txt            webmin-2.100-1.noarch.rpm  模板  图片  下载  桌面
[root@localhost ~]#cat a.txt 
1
2
3
cxk
wyb

9.参数使用案例

正常情况下使用ctrl+C会结束输入,当使用-i参数时中断操作指令ctl+C无效,只可以使用ctrl+D结束输入。

[root@localhost ~]#tee -i a.txt > /dev/null
cxk
wyb
11
22
33^C^C^C[root@localhost ~]#ls
anaconda-ks.cfg  initial-setup-ks.cfg       公共  视频  文档  音乐
a.txt            webmin-2.100-1.noarch.rpm  模板  图片  下载  桌面
[root@localhost ~]#cat a.txt 
cxk
wyb
11
22

三、选项

tee [OPTION]...[FILE]...

选项含义
-a -append附加到既有文件的后面,而非覆盖它
-i  -ignore -interrupts忽略中断信号
--help在线帮助
--version显示版本信息
http://www.lryc.cn/news/313676.html

相关文章:

  • Java agent技术的注入利用与避坑点
  • Linux每日练习
  • 【Python】6. 基础语法(4) -- 列表+元组+字典篇
  • 【C++庖丁解牛】C++内存管理 | new和delete的使用以及使用原理
  • go调用 c++中数组指针相关
  • NTFS Disk by Omi NTFS for mac v1.1.4中文版
  • Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行
  • 前端WebRTC局域网1V1视频通话
  • 设计模式之构建者模式
  • 【PCIe 链路训练】之均衡(equalization)
  • P1059 [NOIP2006 普及组] 明明的随机数
  • 【每日一问】Cookie、Session 和 Token 有什么区别?
  • 智能合约语言(eDSL)—— proc_macro实现合约init函数
  • 如何使用 ArcGIS Pro 制作三维地形图
  • 服务器配置禁止IP直接访问,只允许域名访问
  • #14vue3生成表单并跳转到外部地址的方式
  • 航测管家:智能化革新航测作业流程
  • XXE-XML实体注入漏洞
  • 数据结构从入门到精通——栈
  • webhook详解
  • 用 ChatGPT 帮自己修英文简历 — UI/UX 设计师篇
  • 2402. 2-SAT 问题(tarjan,2-SAT模板题)
  • 基于java+springboot+vue实现的宠物健康咨询系统(文末源码+Lw)23-206
  • 品牌如何玩转饥饿营销?媒介盒子分享
  • Vue3:ref和reactive实现响应式数据
  • 二维码门楼牌管理系统应用场景:商业与零售业发展的助推器
  • 【Linux进阶之路】网络 —— “?“ (下)
  • 【AIGC】Stable Diffusion的建模思想、训练预测方式快速
  • JVM(类加载机制)
  • C++ 实战项目之 Boost 搜索引擎