「cmp -s file1 file2」は出力を生成しません。

「cmp -s file1 file2」は出力を生成しません。
$ cmp -s file1 file2

上記のコマンドは、次の場合は何も返しません。

  • ケース1:2つのファイル(file1とfile2)が異なります。
  • ケース2:2つのファイル(file1とfile2)は同じです。

上記のすべての方法を試しましたが、私のUnixシステムは敏感ではありません。

答え1

-sある静かな、これはcmp何も出力せず、ファイルが同じかどうかを終了状態に反映し、シェルステートメントifで使用できるように指示します。

if cmp -s file1 file2; then
  echo same
else
  echo differ or error
fi

または:

cmp -s file1 file2 && rm file2

何かを出力するには削除してください-s。その後、cmpファイルが異なると開始位置が異なることを示すメッセージが出力されます。


¹ ファイルが異なる場合ではなく、ファイルを開くことができない場合にエラーメッセージを表示するいくつかの実装を除外します。

答え2

1番事件について質問があります。 cmpが何も返さない場合、ファイルはおそらく同じです。diff file1 file確認してみてくださいsum file1 file2。印刷できない文字に違いがありますか?

関連情報