Pipe
輸入重定向的額外輸出
我有一個包含三個文件的文件夾:
$ ls a b c
如果我通過管道輸出
ls
towc
,我會得到正確的結果:$ ls | wc -l 3
但是,當我將輸入指定
wc
為 的輸出時ls
,我會得到額外的文本:$ wc -l <(ls) 3 /dev/fd/63
誰能向我解釋發生了什麼?
wc
如果可以的話,會告訴你它正在處理什麼文件。第一個管道是從標準輸入讀取的,而不是文件,因此不報告文件名。但是,第二個是使用程序替換,它將命令的輸出顯示為一個文件,該文件會wc
報告。它報告從其讀取的文件描述符。