Bash
command | 有什麼區別?cat > output.txt
和 command |> 輸出.txt
為什麼我們不能在使用 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
將創建一個空文件。