次の2つのコマンドグループを考えてみましょう。
$ cat *.d | wc -l
そして
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
これら2つは同じ値を出力したいと思います。しかし、私が所有している特定のディレクトリで実行すると、次の内容が表示されます。
$ 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)です。