使用shell,我在执行和zsh
时观察到相同的输出。有人可以证实我对此的理解吗?ls > a.txt | wc
ls | wc
在第一个命令中,通过使用运算符并通过使用管道(当前指向文件)重定向到管道的写入端,STDOUT
命令从管道读取,从而产生与以下相同的效果a.txt
>
STDOUT
wc
ls | wc
但我在这里的疑问是,由于我看到相同的输出,这意味着 ls 的输出被写入管道和a.txt
(我检查了文件)。为什么输出应该写入两者,因为在ls
执行文件描述符时STDOUT
将指向管道的写入端或文件,因此我不应该在两者中都获得输出。
假设我位于一个包含 2 个文件的目录中a.txt
,sample.txt
然后
运行上述两个命令会给出输出
2 2 17
a.txt
包含
a.txt
sample.txt