大家好,欢迎来到IT知识分享网。
目录
一、命令简介
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 11% / devtmpfs 0 0% /dev tmpfs 0 0% /dev/shm tmpfs 17476 2% /run tmpfs 0 0% /sys/fs/cgroup /dev/sda1 4% /boot tmpfs 12 1% /run/user/42 tmpfs 0 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 11% / devtmpfs 0 0% /dev tmpfs 0 0% /dev/shm tmpfs 17476 2% /run tmpfs 0 0% /sys/fs/cgroup /dev/sda1 4% /boot tmpfs 12 1% /run/user/42 tmpfs 0 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 | 显示版本信息 |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117525.html