Pipe

輸入重定向的額外輸出

  • April 27, 2016

我有一個包含三個文件的文件夾:

$ ls
a  b  c

如果我通過管道輸出lsto wc,我會得到正確的結果:

$ ls | wc -l
3

但是,當我將輸入指定wc為 的輸出時ls,我會得到額外的文本:

$ wc -l <(ls)
3 /dev/fd/63

誰能向我解釋發生了什麼?

wc如果可以的話,會告訴你它正在處理什麼文件。第一個管道是從標準輸入讀取的,而不是文件,因此不報告文件名。但是,第二個是使用程序替換,它將命令的輸出顯示為一個文件,該文件會wc報告。它報告從其讀取的文件描述符。

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