Linux tee 命令
tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。
语法
tee (选项) (参数)
选项
-a:向文件中重定向时使用追加模式; -i:忽略中断(interrupt)信号。
参数
文件:指定输出重定向的文件。
案例:
1.将输出写入到文件中:
如下所示将“ping google.com”输出内容写入 output.txt
文件,并显示在标准输出中,感觉用来跟踪指令输出非常有用
ping google.com | tee output.txt
2.追加信息到文件中
[command] | tee -a [file]
3.写入多个文件
[command] | tee [file1] [file2] [file3]
案例:
ping baidu.com | tee output1.txt output2.txt output3.txt
4.输出内容直接作为另一个命令的输入内容
你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入 output.txt
文件中,还会通过 wc
命令让你知道输入到 output.txt
中的文件数目。
ls file* | tee output.txt | wc -l
5.提升文件写入权限
假如你使用 vim打开文件,并且做了很多更改,然后当你尝试保存修改时,你得到一个报错,让你意识到那是一个 root 所拥有的文件,这意味着你需要使用 sudo
权限保存修改。如此情况下,你可以(在 Vim 内)使用 tee
命令来提高权限。
:w !sudo tee %
6.让 tee 命令忽视中断
[command] | tee -i [file]