ファイルに「cat」を追加すると、自分を上書きするように見えるのはなぜですか?

ファイルに「cat」を追加すると、自分を上書きするように見えるのはなぜですか?

次の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で実行)で問題が発生していることを確認してください。別の仮想マシンで「同じジョブ」を実行したため、上記と同じ出力を受けてはいけません。両方のコマンドセットは同じ出力を返します。

どちらの場合も、バージョンはcat8.22、バージョンはbash4.2.46(2)です。

ベストアンサー1

おすすめ記事