关于linux:linux双向重定向之tee命令

9次阅读

共计 1015 个字符,预计需要花费 3 分钟才能阅读完成。

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/…
微信公众号: 入门小站

正文完
 0