-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
выводит сообщение, когда файлы различаются, указывая, где они начинают отличаться.
¹ за исключением некоторых реализаций сообщений об ошибках, когда файлы не могут быть открыты, а не тогда, когда они отличаются.
Я бы поставил под сомнение ваш случай 1. Если cmp ничего не возвращает, то файлы, скорее всего, идентичны. Попробуйте diff file1 file
и sum file1 file2
для подтверждения. Возможно ли, что различия заключаются в непечатаемых символах -?