输入重定向的额外输出

输入重定向的额外输出

我有一个包含三个文件的文件夹:

$ ls
a  b  c

如果我通过管道输出lsto wc,我会得到正确的结果:

$ ls | wc -l
3

但是,当我将输入指定wc为 的输出时ls,我会得到额外的文本:

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

谁能向我解释发生了什么事?

答案1

wc如果可以的话,会告诉您它正在处理哪个文件。第一个带有管道的文件是从标准输入读取的,而不是文件,因此不报告文件名。然而,第二个,您正在使用进程替换,它将命令的输出显示为一个文件,并wc进行报告。它报告从中读取的文件描述符。

相关内容