$ 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
。印刷できない文字に違いがありますか?