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显示版本信息
  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: tee命令Linux中的一个命令,它可以将标准输入复制到标准输出和一个或多个文件中。tee命令的语法如下: tee [OPTION]... [FILE]... 其中,OPTION是可选的参数,FILE是要写入的文件名。如果不指定文件名,则tee命令会将标准输入复制到标准输出。 tee命令的常用选项包括: -a:追加到文件末尾,而不是覆盖原有内容。 -i:忽略中断信号,即使在写入文件时也不会停止。 -p:使用原子操作写入文件,确保写入的数据不会被其他进程干扰。 例如,要将标准输入复制到文件output.txt中,可以使用以下命令: $ cat input.txt | tee output.txt 这个命令会将input.txt文件的内容读入标准输入,然后将其复制到标准输出和output.txt文件中。如果output.txt文件不存在,则会创建一个新的文件。如果要追加到文件末尾,可以使用-a选项: $ cat input.txt | tee -a output.txt 这个命令会将input.txt文件的内容追加到output.txt文件的末尾。 ### 回答2: linuxtee命令是一个非常常用的命令行工具,它的作用是将一个进程的输出复制到另外一个进程(文件、终端等)中。tee命令可以实现在执行命令时,将结果同时输出到控制台和文件中。下面我们来详细介绍一下tee命令的用法。 1. 基本用法: tee命令的基本用法非常简单,格式如下: tee [OPTION]... [FILE]... 其中[OPTION]指的是可选参数,[FILE]指的是输出的文件名。默认情况下,如果不指定[FILE],则tee命令会将输入输出到控制台上。 2. 参数解释: 在tee命令中,最常用的参数是-A和-i。 -A:表示将输出追加到文件中,而不是覆盖原来的文件。 -i:表示如果输出的文件已经存在,询问是否覆盖原文件。 除了这两个参数之外,还有一些其他的参数,例如-p、-t、-u等,这些参数的具体含义可以通过man命令查看。 3. 实例演示: 现在我们来通过实例的形式演示一下,如何使用tee命令命令输出同时输出到文件和控制台中。 例如,需要执行ls命令并将结果输出到文件output.txt中,同时在控制台上也要看到输出的结果: ls | tee output.txt 在执行这条命令时,ls命令会将执行结果输出到tee命令中,而tee命令会将结果复制一份输出到控制台上,同时也将结果输出到output.txt文件中。可以通过cat output.txt命令来查看文件的输出结果。 以上就是关于linuxtee命令的用法介绍,希望对大家有所帮助。总体来说,tee命令非常实用,尤其是在需要将输出同时输出到控制台和文件时,它可以帮助我们快速完成任务。 ### 回答3: 在Linux中,tee命令是一种非常常用的工具。它的作用是从标准输入中读取数据,然后将数据同时输出到标准输出和一个或多个文件中。tee命令命令行环境下十分实用,特别是当我们需要将命令行输出同时保存到文件并显示在终端上时。 使用tee命令的基本语法为: ``` command | tee [OPTION] [FILE]... ``` 其中,command代表需要输出的命令tee代表tee命令本身;OPTION代表一些可选的参数,例如-a表示以追加的方式输出至文件;FILE代表要将数据输出到的一个或多个文件。 使用tee命令不仅能够将命令行的输出同时输出到终端和文件中,还可以将多个命令的输出合并到同一个文件中,实现数据处理中的管道操作。当我们需要对某个命令的输出进行后续处理时,可以结合tee命令和管道符来实现。 例如,我们可以使用以下命令将ls命令的输出同时输出到终端和文件中: ``` ls | tee output.txt ``` 如果想以追加的方式输出到文件中,可以使用-a参数: ``` ls | tee -a output.txt ``` 当然,在一条命令中也可以同时输出到多个文件中: ``` ls | tee output1.txt output2.txt ``` 需要注意的是,不能对同一个文件同时进行写入和读取操作,否则会导致文件损坏。在使用tee命令时,应该注意文件的读写权限,避免权限不足而无法进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值