linux双向重定向之tee命令
【摘要】 tee的作用是将一份标准输入多重定向,一份重定向到标准输出/dev/stdout,然后还将标准输入重定向到每个文件FILE中。在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >rumenz.txt,这时不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了.tee流程示意图 命令语法> tee [options] FILE1 FIL...
tee的作用是将一份标准输入多重定向,一份重定向到标准输出/dev/stdout,然后还将标准输入重定向到每个文件FILE中。
在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >rumenz.txt,这时不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了.
tee流程示意图
命令语法
> tee [options] FILE1 FILE2 FILE3...
保存当前目录文件列表到文件并打印到屏幕
> ls -al | tee rumenz.txt
total 1088
drwxr-xr-x 3 root root 93 Jun 20 22:57 .
drwxr-xr-x 9 root root 4096 Jul 5 23:09 ..
-rw-r--r-- 1 mysql mysql 0 Jun 20 22:57 1.txt
-rw-r--r-- 1 mysql mysql 0 Jun 20 22:57 2.txt
drwxr-xr-x 3 root root 17 Jun 8 23:29 rumenz
rumenz.txt
里面也有相同的内容
tee 命令追加信息到文件中
默认是覆盖写入,
-a
是追加写入到目标文件
> ls -al | tee -a rumenz.txt
tee 写入多个文件
> ls -al | tee rumenz.txt rumenz1.txt rumenz2.txt
让 tee 命令的输出内容直接作为另一个命令的输入内容
tee 命令,你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入
rumenz.txt
文件中,还会通过 wc 命令让你知道输入到rumenz.txt
中的文件数目
> ls file* | tee rumenz.txt | wc -l
tee 命令提升文件写入权限
很多时候我们使用非root账号修改了一个文件,正要保存的时候,vim抛出以下错误,直接退出的话,就会丢失掉修改
"/etc/nginx/nginx.conf" E212: Can't open file for writing
这个时候我们就可以用tee来提升权限保存文件
:w !sudo tee %
root 密码,然后就能让你保存修改了
总结
tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,tee命令可以重定向标准输出到多个文件。要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。
原文链接:https://rumenz.com/rumenbiji/linux-tee.html
微信公众号:入门小站
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)