Обзор
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 сообщает результат сравнения через коды завершения, что удобно для использования в скриптах.
Код | Значение |
---|---|
0 | Два файла идентичны |
1 | Два файла отличаются |
2 | Недоступный файл или ошибка опции |
Установка
cmp входит в большинство дистрибутивов Linux как часть пакета `diffutils` и не требует отдельной установки.
Советы и примечания
Собраны важные моменты при использовании команды cmp.
Советы
- cmp оптимизирован для сравнения бинарных файлов. Для просмотра различий в содержимом текстовых файлов лучше использовать `diff`.
- Использование опции `cmp -s` подавляет вывод, что удобно для использования с операторами `if` или `&&`/`||` в скриптах.
- Позиция байта начинается с 1, а значения байтов, выводимые `cmp -l`, представлены в восьмеричной системе.