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