$ cmp -s file1 file2
Приведенная выше команда ничего не возвращает для следующих случаев:
Я перепробовал все вышеописанные случаи, но моя система Unix нечувствительна.
-s
для безмолвия , он говорит cmp
не выводить ничего¹, а только для того, чтобы отразить, идентичны ли файлы в его состоянии выхода, чтобы его можно было использовать, например, в операторе if
shell:
if cmp -s file1 file2; then echo same else echo differ or error fi
Или же:
cmp -s file1 file2 && rm file2
Если вы хотите, чтобы он что-то -s
, удалите -s
. Затем cmp
выдаст сообщение, когда файлы различаются, указывая, где они начинают различаться.
¹ за исключением некоторых реализаций сообщений об ошибках, когда файлы нельзя открыть, а не когда они различаются.
Я бы поставил под сомнение ваш случай 1. Если cmp ничего не возвращает, файлы, вероятно, идентичны. Попробуйте diff file1 file
и sum file1 file2
для подтверждения. Возможно ли, что различия заключаются в непечатных символах?