何時使用管道以及何時重定向?

何時使用管道以及何時重定向?

雖然這是一個基本的東西,但我仍然想知道。考慮這兩個例子。

情況1:

[root@dhcppc0 practice]# cat file1 > wc -l
cat: invalid option -- l
Try `cat --help' for more information.

案例2:

[root@dhcppc0 practice]# cat file1 | wc -l
7

我想知道,為什麼在第一種情況下重定向不起作用?何時使用重定向以及何時使用管道?我已經使用 Linux 很長時間了,但這些基本的東西仍然讓我感到困惑。

請幫忙。

答案1

重定向運算符用於將命令串流傳輸stdout到檔案 ( >),或將檔案內容串流傳輸到stdin命令 ( <)。

管道操作員( |) 將行程的輸出 ( stdout) 串流傳輸到下一個行程' stdin

使第一個案例工作的唯一方法是使用臨時文件,因此您需要執行兩個步驟:

cat file1 > tmpfile
wc -l < tmpfile

答案2

當您想要將一個可執行檔的 FD 連接到另一個可執行檔的 FD 時,可以使用管道。當您想要將可執行檔的 FD 連線到檔案時,可以使用重定向。

相關內容