考虑以下两个(组)命令:
$ cat *.d | wc -l
和
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
我希望这两个输出相同的值。但是,当我在我拥有的特定目录上运行它时,我看到以下内容:
$ cat *.d | wc -l
7026
相比之下:
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
295
如果你能原谅这个双关语的话,我的似乎cat
被自己的尾巴绊倒了。这里发生了什么?请注意,如果我使用>
而不是>>
那么我会得到预期的输出7026
。
编辑:
有关更多信息,该问题是在本地 CentOS 7 VM(在 Mac 上运行)上出现的。我不应该因为我刚刚在单独的虚拟机上运行“相同的东西”而没有得到与上面相同的输出,两组命令都返回相同的输出。
在这两种情况下, 的版本cat
均为 8.22, 的版本bash
为 4.2.46(2)。