Bash

command | 有什麼區別?cat > output.txtcommand |> 輸出.txt

  • January 9, 2021

為什麼我們不能在使用 Pipe 路由後將這些輸出定向到文件中?

你可以更好地理解我通過這個例子的意思。在我的範例中,為什麼我不能只使用路由運算符(“ >”)而不使用cat命令來路由輸出?

使用cat命令:

└─$ whoami | cat > out.txt
└─$ cat out.txt
testter

沒有cat命令:

└─$ whoami | > out1.txt
└─$ cat out1.txt
#no any content in file..
└─$ whoami | >> out2.txt
└─$ cat out2.txt
#no any content in file..

我也可以使用替代工具而不是cat命令。這不是cat這裡重要的工具。我想問的是為什麼我們不能用路由運算符“”路由直接來自管道的數據>

管道在概念上的工作方式是將左側命令的輸出連接到右側命令的輸入。

所以這一行:

whoami | cat > out.txt

whoami預設情況下將列印到stdout,但由於有一個管道,它將連接到cat.

那麼這是什麼意思?

whoami | > out.txt

好吧,您是說將輸出附加whoami到任何內容。然後將nothing的輸出重定向到文件out.txt

操作符的>意思是截斷被命名為右參數的文件,必要時創建它,然後將左命令的輸出重定向到文件。注意

> out.txt

將創建一個空文件。

引用自:https://unix.stackexchange.com/questions/628362