前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux双向重定向之tee命令

linux双向重定向之tee命令

作者头像
入门笔记
发布2022-06-02 19:23:09
7740
发布2022-06-02 19:23:09
举报
文章被收录于专栏:入门小站入门小站

tee的作用是将一份标准输入多重定向,一份重定向到标准输出/dev/stdout,然后还将标准输入重定向到每个文件FILE中。

在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >rumenz.txt,这时不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了.

tee流程示意图

img

命令语法

代码语言:javascript
复制
> tee [options] FILE1 FILE2 FILE3...

保存当前目录文件列表到文件并打印到屏幕

代码语言:javascript
复制
> 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是追加写入到目标文件

代码语言:javascript
复制
> ls -al | tee -a rumenz.txt

tee 写入多个文件

代码语言:javascript
复制
> ls -al | tee rumenz.txt rumenz1.txt rumenz2.txt 

让 tee 命令的输出内容直接作为另一个命令的输入内容

tee 命令,你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入 rumenz.txt 文件中,还会通过 wc 命令让你知道输入到 rumenz.txt中的文件数目

代码语言:javascript
复制
> ls file* | tee rumenz.txt | wc -l

tee 命令提升文件写入权限

很多时候我们使用非root账号修改了一个文件,正要保存的时候,vim抛出以下错误,直接退出的话,就会丢失掉修改

代码语言:javascript
复制
"/etc/nginx/nginx.conf" E212: Can't open file for writing

这个时候我们就可以用tee来提升权限保存文件

代码语言:javascript
复制
:w !sudo tee %

root 密码,然后就能让你保存修改了

总结

tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,tee命令可以重定向标准输出到多个文件。要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-08,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命令语法
  • 保存当前目录文件列表到文件并打印到屏幕
  • tee 命令追加信息到文件中
  • tee 写入多个文件
  • 让 tee 命令的输出内容直接作为另一个命令的输入内容
  • tee 命令提升文件写入权限
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com