Главная > Обработка текста и поиск > cmp

cmp: побайтовое сравнение двух файлов

Команда cmp сравнивает два файла побайтово и сообщает о первом отличии, включая его позицию и номер строки. Это полезно для быстрой проверки идентичности простых бинарных или текстовых файлов.

Обзор

cmp — это гораздо более простой инструмент сравнения, чем команда diff. В то время как diff подробно показывает различия между файлами построчно, cmp просто сообщает о факте 'файлы отличаются' вместе с первой позицией (смещением байта) и номером строки, где обнаружено различие. Поэтому он очень эффективен, когда вам нужно просто проверить идентичность файлов, таких как файлы конфигурации или бинарные файлы, без необходимости просматривать все их содержимое.

Основные особенности

Основные особенности команды cmp:

  • Сравнивает файлы побайтово.
  • Выводит только первое обнаруженное отличие (позицию и номер строки).
  • Простой вывод подходит для использования в скриптах для проверки идентичности файлов.
  • Особенно полезен для сравнения бинарных файлов.

Различия с diff

cmp и diff — это инструменты для сравнения файлов, но они отличаются по назначению и способу вывода.

  • cmp: Побайтовое сравнение, сообщает только о первом отличии, подходит для бинарных файлов.
  • diff: Построчное сравнение, подробно сообщает обо всех отличиях, подходит для текстовых файлов.

Основные опции

Часто используемые опции команды cmp, сгруппированные по назначению.

1) Опции сравнения

2) Справка

Сгенерированная команда:

Комбинируйте команды.

Описание:

`cmp` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Изучите функции команды cmp на различных примерах использования.

Сравнение двух текстовых файлов

echo 'Hello World' > file1.txt
echo 'Hello World' > file2.txt
cmp file1.txt file2.txt

При сравнении двух одинаковых текстовых файлов ничего не выводится.

Сравнение двух разных текстовых файлов

echo 'Hello World' > file1.txt
echo 'Hello, World' > file2.txt
cmp file1.txt file2.txt

Если содержимое файлов отличается, выводит позицию байта и номер строки первого отличия.

Сравнение бинарных файлов

cmp /bin/ls /bin/cmp

Простая проверка идентичности бинарных файлов. Если вывод отсутствует, файлы идентичны.

Использование в скриптах

cmp -s file1.txt file2.txt && echo 'Файлы идентичны.' || echo 'Файлы отличаются.'

Использует код завершения cmp для условной обработки в зависимости от идентичности файлов.

Коды завершения

cmp сообщает результат сравнения через коды завершения, что удобно для использования в скриптах.

Статусы завершения cmp
Код Значение
0 Два файла идентичны
1 Два файла отличаются
2 Недоступный файл или ошибка опции

Установка

cmp входит в большинство дистрибутивов Linux как часть пакета `diffutils` и не требует отдельной установки.

Советы и примечания

Собраны важные моменты при использовании команды cmp.

Советы

  • cmp оптимизирован для сравнения бинарных файлов. Для просмотра различий в содержимом текстовых файлов лучше использовать `diff`.
  • Использование опции `cmp -s` подавляет вывод, что удобно для использования с операторами `if` или `&&`/`||` в скриптах.
  • Позиция байта начинается с 1, а значения байтов, выводимые `cmp -l`, представлены в восьмеричной системе.

Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории