@Alex Howanskyがこれに「cmp --silent」を使用したのが好きです。しかし、肯定と否定の両方の応答が必要なので、次を使用します:
cmp --silent file1 file2 && echo '### SUCCESS: Files Are Identical! ###' || echo '### WARNING: Files Are Different! ###'
これをターミナルまたは ssh で実行して、定数ファイルと照合してファイルをチェックできます。
すばやく安全に 任意の 2 つのファイルを比較:
if cmp --silent -- "$FILE1" "$FILE2"; then
echo "files contents are identical"
else
echo "files differ"
fi
読みやすく、効率的で、"` $()
を含むすべてのファイル名で機能します。
cmp
を信じる 最初のバイトの違いで停止します:
cmp --silent $old $new || echo "files are different"
私は評判が悪く、十分な評判ポイントがないため、この情報をコメントとして追加することはできません.
ただし、cmp
を使用する場合は、 コマンドを実行する必要はありません (詳細にする必要はありません)。終了ステータスを取得するだけです。 cmp
あたり マニュアルページ:
FILE が「-」または欠落している場合は、標準入力を読み取ります。終了ステータスは、入力が同じ場合は 0、異なる場合は 1、問題が発生した場合は 2 です。
したがって、次のようなことができます:
STATUS="$(cmp --silent $FILE1 $FILE2; echo $?)" # "$?" gives exit status for each comparison
if [[ $STATUS -ne 0 ]]; then # if status isn't equal to 0, then execute code
DO A COMMAND ON $FILE1
else
DO SOMETHING ELSE
fi
編集:コメントありがとうございます!ここでテスト構文を更新しました。ただし、読みやすさ、スタイル、および構文の点でこの回答に似たものを探している場合は、Vasili の回答を使用することをお勧めします。