$ cmp -s file1 file2, эта команда ничего не возвращает в следующих случаях: case 1: оба файла различны; случай 2: оба файла одинаковы

$ cmp -s file1 file2

Приведенная выше команда ничего не возвращает для следующих случаев:

  • Случай 1: оба файла (файл1 и файл2) различны;
  • Случай 2: оба файла (файл1 и файл2) одинаковы.

Я перепробовал все вышеописанные случаи, но моя система 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 для подтверждения. Возможно ли, что различия заключаются в непечатных символах?