约 3622 字

约 18 分钟

#Bash 的 tee 命令

tee [OPTION]... [FILE]...

功能

读取标准输入,然后将内容打印到标准输出以及每个文件。

类型

可执行文件(/usr/bin/tee),属于 coreutils。

参数

  • OPTION 选项:
    • -a, --append - 追加写入文件,而不是覆盖文件
    • -i, --ignore-interrupts - 忽略中断信号
    • -p - 以更合适的模式操作管道
    • --output-error[=MODE] - 写入错误时的行为:
      • warn - 写入错误时发出警告
      • warn-nopipe - 写入非管道输出发生错误时,发出警告
      • exit - 写入错误时退出
      • exit-nopipe - 写入非管道输出发生错误时,退出
    • --help - 显示帮助
    • --version - 显示版本
  • FILE - 文件列表;如果没有这个参数或指定为 -,则读取标准输入

#示例

创建文件

$ tee 1.txt << EOF          # 将接下来的输入写入 1.txt,遇到 EOF 时结束
> Primers 编程伙伴
> https://xplanc.org/primers/
> EOF
Primers 编程伙伴
https://xplanc.org/primers/
$ cat 1.txt
Primers 编程伙伴
https://xplanc.org/primers/

重定向

$ my_cmd | tee -a 1.txt     # 将 my_cmd 命令的输出打印出来的同时追加写入 1.txt

辅助 VIM 提权写入文件

:w ! sudo tee % > /dev/null

使用 vim 打开文件时未使用 sudo,没有写入权限;可以使用此命令提权写入文件。

  • ! 将缓冲区作为标准输入传递给后面的命令
  • % 展开为当前文件的路径

#推荐阅读

#手册

更新: 2026/8/23

作者: planc

创建: 2025/12/5