cmp (Unix)
Оригинальный автор(ы) | Деннис Ричи ( AT&T Bell Laboratories ) |
---|---|
Разработчик(и) | Различные с открытым исходным кодом и коммерческие разработчики разработчики |
Первоначальный выпуск | 3 ноября 1971 г |
Написано в | План 9: С |
Операционная система | Unix , Unix-подобные , Plan 9 , Inferno , OS-9 , IBM i |
Тип | Команда |
Лицензия | основные утилиты : GPLv3+ План 9: МОЯ лицензия |
В вычислениях , cmp
— это утилита командной строки в Unix и Unix-подобных операционных системах , которая сравнивает два файла любого типа и записывает результаты в стандартный вывод . По умолчанию, cmp
молчит, если файлы одинаковые; если они различаются, байта сообщается номер и строки, в которой произошло первое различие. Команда также доступна в оболочке OS-9 . [1]
История
[ редактировать ]cmp
является частью руководства по переносимости X/Open, начиная с выпуска 2 1987 года. Он был унаследован в первой версии POSIX.1 и единой спецификации Unix . [2] Впервые он появился в версии 1 Unix . [3] Версия cmp
пакет GNU coreutils был написан Торбьорном Гранлундом и Дэвидом Маккензи. [4] Команда доступна в виде отдельного пакета для Microsoft Windows как часть UnxUtils коллекции , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [5] Команда cmp также была перенесена в операционную систему IBM i . [6]
Переключатели
[ редактировать ]cmp
может быть уточнено с помощью ключей командной строки . Коммутаторы, поддерживаемые известными реализациями cmp
являются:
Имя | Описание | Юникс | План 9 | Инферно | FreeBSD | Линукс | IBM я |
---|---|---|---|---|---|---|---|
-b, | Выведите разные байты. Отображать управляющие байты как ' ^ ', за которым следует буква алфавита и предшествуют байтам, у которых старший бит установлен с помощью ' M- (что означает « мета »). | Нет | Нет | Нет | Нет | Да | Нет |
-h | Не переходите по символическим ссылкам. | Нет | Нет | Нет | Да | Нет | Нет |
-i SKIP, | Пропустить первые SKIP байты ввода. | Нет | Нет | Нет | Нет | Да | Нет |
-i SKIP1:SKIP2, | Пропустить первые байты SKIP1 файла FILE1 и первые байты SKIP2 файла FILE2. | Нет | Нет | Нет | Нет | Да | Нет |
-l, | Выведите (десятичные) номера байтов и (восьмеричные) значения всех отличающихся байтов вместо стандартного вывода по умолчанию. Кроме того, выведите сообщение EOF, если один файл короче другого. | Да | Да | Да | Да | Да | Да |
-L | Выведите номер строки первого отличающегося байта. | Да | Да | Да | Нет | Нет | Нет |
-n LIMIT, | Сравнить не более LIMIT байт. | Нет | Нет | Нет | Нет | Да | Нет |
-s, | Ничего не выводить; выдавать только статус выхода. | Да | Да | Да | Да | Да | Да |
-t | Текстовый режим, в котором файлы открываются в текстовом режиме и преобразуются в CCSID задания перед побайтовым сравнением. | Нет | Нет | Нет | Нет | Нет | Да |
-v, | Информация о версии вывода. | Нет | Нет | Нет | Нет | Да | Нет |
-x | Аналогично -l, но печатает в шестнадцатеричном формате и использует нуль в качестве индекса для первого байта в файлах. | Нет | Нет | Нет | Да | Нет | Нет |
-z | Для обычных файлов сначала сравните размеры файлов и завершите сравнение, если они не равны. | Нет | Нет | Нет | Да | Нет | Нет |
--help | Выводит файл справки. | Нет | Нет | Нет | Нет | Да | Нет |
Операнды, являющиеся счетчиками байтов, обычно десятичные, но им может предшествовать ' 0
' для восьмеричного и ' 0x
' для шестнадцатеричного числа.
За количеством байтов может следовать суффикс, указывающий кратное этому числу; в этом случае пропущенное целое число понимается как 1. Буква простого размера или буква, за которой следует ' iB
', указывает кратность использования степеней 1024. Буква размера, за которой следует ' B
' Вместо этого задается степень 1000. Например, ' -n 4M
' и ' -n 4MiB
' эквивалентны ' -n 4194304
', тогда как ' -n 4MB
'эквивалентно' -n 4000000
'. Это обозначение совместимо с префиксами SI снизу вверх. [7] для десятичных кратных и с префиксами IEC 60027-2 для двоичных кратных. [8]
Пример
[ редактировать ]Возвращаемые значения
[ редактировать ]- 0 – файлы идентичны
- 1 – файлы различаются
- 2 – недоступный или отсутствующий аргумент
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Пол С. Даян (1992). OS-9 Guru-1: Факты . Галактика Индастриал Лимитед. ISBN 0-9519228-0-7 .
- ^ Единая спецификация UNIX , версия 4 от Open Group. – Справочник по оболочке и утилитам,
- ^ FreeBSD по основным командам Руководство –
- ^ «cmp(1): сравнить два файла побайтно — справочная страница Linux» . linux.die.net .
- ^ «Собственные порты Win32 некоторых утилит GNU» . unxutils.sourceforge.net .
- ^ ИБМ . «IBM System i Версия 7.2 Программирование Qshell» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
- ^ «Добро пожаловать – МБМВ» .
- ^ «Определения единиц СИ: двоичные префиксы» . физика.nist.gov . Проверено 21 апреля 2018 г.
Внешние ссылки
[ редактировать ]- Единая спецификация UNIX , Версия 4 от The Open Group : сравнить два файла – Справочник по оболочке и утилитам,
- Сравнение и объединение файлов : вызов cmp Раздел руководства по GNU cmp в по diffutils бесплатном руководстве .