考慮以下兩個(組)指令:
$ 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)。