oynix

于无声处听惊雷,于无色处见繁花

Linux命令--tee

tee,这个单词没有什么实际性的含义,就是T型管道的意思,在--的基础上,变成T型,这样就多了一个输出。所以,这个命令的作用就是,在不改变输出原有行为的基础上,将其额外的导向文件中。

1. 举例

比如想要ping一个地址,下面这样操作只是在标准输出显示了出来,

1
2
3
4
5
6
7
$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=53 time=37.463 ms
64 bytes from 220.181.38.148: icmp_seq=1 ttl=53 time=36.565 ms
64 bytes from 220.181.38.148: icmp_seq=2 ttl=53 time=35.840 ms
64 bytes from 220.181.38.148: icmp_seq=3 ttl=53 time=36.733 ms
64 bytes from 220.181.38.148: icmp_seq=4 ttl=53 time=36.475 ms

这个时候,加上tee命令,原有的输出没有发生改变,但同时将输出也写到了文件output.txt中,这就是tee命令的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ping baidu.com | tee output.txt
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=53 time=42.524 ms
64 bytes from 220.181.38.148: icmp_seq=1 ttl=53 time=39.871 ms
64 bytes from 220.181.38.148: icmp_seq=2 ttl=53 time=41.977 ms
64 bytes from 220.181.38.148: icmp_seq=3 ttl=53 time=38.483 ms
64 bytes from 220.181.38.148: icmp_seq=4 ttl=53 time=43.906 ms

$ cat output.txt
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=53 time=42.524 ms
64 bytes from 220.181.38.148: icmp_seq=1 ttl=53 time=39.871 ms
64 bytes from 220.181.38.148: icmp_seq=2 ttl=53 time=41.977 ms
64 bytes from 220.181.38.148: icmp_seq=3 ttl=53 time=38.483 ms
64 bytes from 220.181.38.148: icmp_seq=4 ttl=53 time=43.906 ms

2. 参数

tee命令默认是覆盖的形式写入到文件,当执行两次时,第二次的输出就会覆盖第一次的输出,是用a,append参数,可以以追加的形式写入到文件。此外,还有i,ignore参数,用来忽略中断命令,同时,tee支持多个文件

1
$ ping baidu.com | tee -a output1.txt output2.txt output3.txt
------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2022/04/f44b08c2e67e/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道