tee命令的可用和常用的选项并不多,也技术下面的这几个

  -a, --append              追加到 <文件>,而不是覆盖
  -i, --ignore-interrupts   忽略中断信号
  --help        显示此帮助信息并退出
  --version     显示版本信息并退出

tee命令的作用是将标准输入复制到每个 <文件>,并同时输出到标准输出。

tee命令是以水管中的T-splitter命名的,它将水分成两个方向,形状像一个大写的T。

tee将数据从标准输入复制到每个文件,也复制到标准输出。实际上,tee复制了它的输入,一次将其路由到多个输出。

Section 13.1: 将输出写入标准输出,也写入文件

下面以 ls 命令为例来说明 tee 的用法

如果单纯只是执行 ls 它将只在屏幕上显示输出(stdout)。

root@demohosts:/home/demouser# ls
公共  视频  文档  音乐  compose-file  daemon_symbolic    HardwareList.xml  typecho
模板  图片  下载  桌面  daemon.json   HardwareList.html  snap

要是想将 ls 的输出结果写入文件,可以这样做,但是这样却不能在屏幕也输出结果。

root@demohosts:/home/demouser# ls > ls.txt

下面的效果就是借助 tee 命令将j结果同时输出到屏幕(stdout)和写入到文件lsfile.txt。

root@demohosts:/home/demouser# ls | tee lsfile.txt
公共
模板
视频
图片
文档
下载
音乐
桌面
compose-file
daemon.json
daemon_symbolic
HardwareList.html
HardwareList.xml
lsfile.txt
ls.txt
snap
typecho

Section 13.2: 将管道链中间的输出写入文件,并将其传递回管道

您还可以使用tee命令将命令的输出存储在文件中,并将相同的输出重定向到另一个命令。

下面的命令这串命令,查看selinux的配置文件,将其保存为newconfig.txt文件,再替换里面的SELINUX=enforcing为SELINUX=disabled,并将其保存为另外一个新的文件 new2.txt。

cat /etc/selinux/config | tee ./newconfig.txt | sed 's/SELINUX=enforcing/SELINUX=disabled/g'| cat > new2.txt

听起来很绕是吧?换个思路呢,./newconfig.txt如果换成~/selinux_backup,最后面的new2.txt换成/etc/selinux/config,这样是不是就好理解了?没错。就是一次性执行了备份selinux的配置文件和修改禁用了selinux。以此类推,这样的操作就可以实现备份配置文件和修改配置文件一次性的执行。

Section 13.3: write the output to multiple files

你可以像下面这样使用tee将输出通过管道传输到多个文件(包括终端):

[demouser@vbox ~]$ ls | tee file1 file2 file3
公共
模板
视频
图片
文档
下载
音乐
桌面
file1
file2
mykey.pem
new2.txt
newconfig2.txt
newconfig.txt

Section 13.4: Instruct tee command to append to the file

默认情况下,tee命令是覆盖文件原来的内容。如果您想追加内容可以使用 -a 选项将新的内容追加到文件中,如下所示。

# 第一次写入内容到文件
[demouser@vbox ~]$ ls | tee file.txt
公共
模板
视频
图片
文档
下载
音乐
桌面
file.txt
mykey.pem
new2.txt
newconfig2.txt
newconfig.txt
# 第二次执行,同时用了 -a ,内容将追加到文件里,而不是覆盖
[demouser@vbox ~]$ ls | tee -a file.txt
公共
模板
视频
图片
文档
下载
音乐
桌面
file.txt
mykey.pem
new2.txt
newconfig2.txt
newconfig.txt
# 查看文件内容,有两遍,而且第二遍的内容包含了文件名
[demouser@vbox ~]$ cat file.txt
公共
模板
视频
图片
文档
下载
音乐
桌面
file.txt
mykey.pem
new2.txt
newconfig2.txt
newconfig.txt
公共
模板
视频
图片
文档
下载
音乐
桌面
file.txt
mykey.pem
new2.txt
newconfig2.txt
newconfig.txt