date: 2020-05-25title: linux tee命令 #标题
tags: tee指令 #标签
categories: linux大杂烩 # 分类

tee指令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单来说就是把数据重定向给文件和屏幕上。
linux tee命令 - 图1

语法

  1. $ tee 选项 参数

选项

  • -a:向文件中重定向时使用追加模式而不是默认的覆盖。
  • -i:忽略中断(interrupt)信号。

使用场景

Q:如何在linux上使用这个命令

linux tee命令 - 图2

看上面的操作,应该明白了tee的基础用法。

Q:如何确保tee命令追加信息到文件中

默认情况下,在同一文件下再次使用tee命令会覆盖之前的信息。相当于重定向符号>,使用-a选项,则可以变成追加的方式,相当于重定向符号>>

如下:

linux tee命令 - 图3

Q:如何同时写入多个文件

  1. $ ls | tee test1.txt test2.txt test3.txt

嗯,没错,tee指令后写多个文件名即可,当然,也可以是绝对路径。

Q: 如何让tee命令的输出内容直接作为另一个命令的输入内容?

  1. $ ls | tee output.txt | wc -l

Q: 如何使用tee命令提升文件写入权限?

假如你使用 Vim 编辑器 打开文件,并且做了很多更改,然后当你尝试保存修改时,你得到一个报错,让你意识到那是一个root所拥有的文件,这意味着你需要使用 sudo 权限保存修改。

  1. :w !sudo tee % # 末行模式下输入此指令

如果你拥有sudo权限,那么就保存成功了,此时你就可以大胆的使用q!强制退出了。

Q:如何让tee命令忽视中断

-i 命令行选项使 tee 命令忽视通常由 ctrl+c 组合键发起的中断信号(SIGINT)。

当你想要使用 ctrl+c 中断该命令,同时让 tee 命令优雅的退出,这个选项尤为实用。