`echo x > y` 和 `echo x | 之间有什么区别?开球啦`?

1 bash shell

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

$ echo 'a' > b
$ cat b
a
Run Code Online (Sandbox Code Playgroud)

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

$ echo 'a' | tee c
a
$ cat c
a
Run Code Online (Sandbox Code Playgroud)

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

SAB*_*SAB 5

简单来说

echo 'a' > b ,它将把“a”写入文件b。

#echo 'a' > b
#cat b
#a
Run Code Online (Sandbox Code Playgroud)

回显'a'| tee b ,它将把“a”写入文件 b 并在终端中显示输出(echo 输出)。

#echo 'a' | tee b
#a
#cat b
#a
Run Code Online (Sandbox Code Playgroud)