`echo x>之间的区别是什么? y`和`echo x | tee y`?

时间:2013-01-26 16:18:55

标签: bash shell

当我想将输出重定向到文件时,我通常会这样做:

$ echo 'a' > b
$ cat b
a

但是,我看到人们使用tee而不是直接重定向到文件。我想知道区别是什么。我在这种模式中的意思是:

$ echo 'a' | tee c
a
$ cat c
a

它似乎与简单的重定向不同。我知道它们在概念上并不是一回事,但我想知道为什么人们会使用一个而不是另一个。

2 个答案:

答案 0 :(得分:2)

使用tee让你分割输出。您可以查看它(通过将stdout指向您正在查看的tty)或将其传递给进一步处理。它可以方便地跟踪管道的中间阶段。

答案 1 :(得分:2)

简单来说就是

回声' a' > b,它会写" a"提交b。

#echo 'a' > b
#cat b
#a
回声' a' | tee b,它会写" a"提交b并在终端显示输出(回声输出)。

#echo 'a' | tee b
#a
#cat b
#a