tee 命令讲解

发布于 2024-05-06  33 次阅读


管道讲解

一个很简单例子,下面的图是管道,程序的标准输出结果交给管道后,会作为标准输入推送到下一个程序

举例:

[root@localhost ~]# cat /etc/passwd | grep root

tee讲解

tee 则像是一个三个孔的管道,在实现了管道的基本功能基础上,可以实现数据的分流

举例:

# 将程序执行结果追加到文件中并打印到屏幕上
[root@localhost ~]# cat /etc/a.txt /etc/b.txt > /opt/c.txt | grep hello # 在这个案例中,将不会有任何过滤出的内容,因为所有的输出结果均已经被 > 进行了重定向,所以,我们可以将指令修改为:
[root@localhost ~]# cat /etc/a.txt /etc/b.txt | tee /opt/c.txt | grep hello  # 这个命令可以实现将输出覆盖到c.txt,并进行过滤,如果tee 命令加上-a 参数,可以实现追加

常见案例:

# 将指令推送给多台主机执行
[root@localhost ~]# echo "ip a" | tee >(ssh -T root@192.168.80.129) >(ssh -T root@192.168.80.130) >/dev/null

# 将当前终端所有的输出结果同步给其他终端
[root@localhost ~]# tty
/dev/pts/0
[root@localhost ~]# script /dev/null | tee /dev/pts/0