tee
从标准输入读取数据并重定向到标准输出和文件。
概要
1tee [OPTION]... [FILE]...
主要用途
- 需要同时查看数据内容并输出到文件时使用。
参数
FILE(可选):要输出的文件,可以为一或多个。
选项
1长选项与短选项等价
2
3-a, --append 追加到文件中而不是覆盖。
4-i, --ignore-interrupts 忽略中断信号(Ctrl+c中断操作无效)。
5-p 诊断写入非管道的错误。
6--output-error[=MODE] 设置写错误时的行为,请查看下方的MODE部分。
7--help 显示帮助信息并退出。
8--version 显示版本信息并退出。
9
10MODE决定了当出现写错误时的输出行为,可用的MODE如下:
11
12'warn' 当写入到任何输出报错时诊断。
13'warn-nopipe' 当写入到任何输出(而不是管道)报错时诊断。
14'exit' 当写入到任何输出报错时退出。
15'exit-nopipe' 当写入到任何输出(而不是管道)报错时退出。
16
17-p选项的指定的默认MODE为'warn-nopipe'。
18当'--output-error'没有在选项中时,默认的操作是当写入到管道报错时立刻退出,诊断错误信息并写入到非管道输出。
返回值
返回状态为成功除非给出了非法选项或非法参数。
例子
1# 将进程信息通过管道输出到标准输出(终端)并覆盖写入到文件中。
2ps -ef |tee info_a.log info_b.log
3
4# 将进程信息通过管道输出到标准输出(终端)并追加写入到文件中。
5ps -ef |tee -a info_a.log info_b.log
注意
- 该命令是
GNU coreutils
包中的命令,相关的帮助信息请查看man -s 1 tee
或info coreutils 'tee invocation'
。 - 存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。
来源:https://github.com/jaywcjlove/linux-command
最后修改于: Wednesday, January 31, 2024
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。