diff - используется для сравнения содержимого двух файлов и вывода различий между ними. Она позволяет определить добавленные, удаленные или измененные строки или блоки текста между файлами.
Разработчик:
Поль Эггерт
Майк Гертель
Дэвид Хейз
Ричард Столлман
Лен Тауэр
Лицензия:
Стандартная общественная лицензия GNU версии 3 (GPLv3)
Синтаксис:
diff [ключ]? файлы
Аргументы, обязательные для длинных параметров, обязательны и для коротких.
First Header | Second Header |
---|---|
--normal | Выводить в обычном формате diff (по умолчанию) |
-q, --brief | Напечатать только различаются ли файлы |
-s, --report-identical-files | Сообщать об одинаковых файлах |
-c, -C Н, --context[=Н] | Выводить по Н (по умолчанию 3) строк копируемого контекста |
-u, -U Н, --unified[=Н] | Выводить по Н (по умолчанию 3) строк объединенного контекста |
-e, --ed | Выводить как сценарий ed |
-n, --rcs | Выводить в формате RCS diff |
-y, --side-by-side | Выводить в две колонки |
-W, --width=Н | Выводить не более Н знаков в строке (по умолчанию 130) |
--left-column | Выводить только левую колонку общих строк |
--suppress-common-lines | Не выводить общие строки |
-p, --show-c-function | Отображать в какой функции Си находится каждое изменение |
-F, --show-function-line=RE | Отображать последнюю совпавшую с RE строку |
--label МЕТКА | Использовать МЕТКУ вместо имени файла и времени (может повторяться) |
-t, --expand-tabs | Раскрывать при выводе символы табуляции в пробелы |
-T, --initial-tab | Выравнивать строки, добавляя в начало символ табуляции |
--tabsize=Н | Табуляция через каждые Н знаков (по умолчанию 8) |
--suppress-blank-empty | Не вставлять пробел или табуляцию перед выводом пустых строк |
-l, --paginate | Направить вывод в pr для разбиения на страницы |
-r, --recursive | Рекурсивно сравнивать подкаталоги |
--no-dereference | Не переходить по символьным ссылкам |
-N, --new-file | Воспринимать несуществующие файлы как пустые |
--unidirectional-new-file | Воспринимать несуществующие первые файлы как пустые |
--ignore-file-name-case | Игнорировать регистр в именах файлов |
--no-ignore-file-name-case | Учитывать регистр в именах файлов |
-x, --exclude=ОБРАЗЕЦ | Исключить файлы, чьи имена совпадают с ОБРАЗЦОМ |
-X, --exclude-from=ФАЙЛ | Исключить файлы с именами, совпадающимис любым образцом из ФАЙЛА |
-S, --starting-file=ФАЙЛ | При сравнении каталогов начать с ФАЙЛА |
--from-file=ФАЙЛ1 | Сравнить ФАЙЛ1 со всеми операндами; ФАЙЛ1 может быть каталогом |
--to-file=ФАЙЛ2 | Сравнить все операнды с ФАЙЛОМ2; ФАЙЛ2 может быть каталогом |
-i, --ignore-case | Игнорировать регистр в содержимом файла |
-E, --ignore-tab-expansion | Игнорировать изменения, вызванные раскрытием табуляции |
-Z, --ignore-trailing-space | Игнорировать пробельные символы в конце строки |
-b, --ignore-space-change | Игнорировать изменения количества пробельных символов |
-w, --ignore-all-space | Игнорировать все пробельные символы |
-B, --ignore-blank-lines | Игнорировать изменения количества пустых строк |
-I, --ignore-matching-lines=RE | Игнорировать изменения строк, совпадающих с RE |
-a, --text | Считать все файлы текстовыми |
--strip-trailing-cr | Удалять из ввода завершающий возврат каретки |
-D, --ifdef=ИМЯ | Выводить заплаты, использующие конструкцию ?#ifdef ИМЯ? |
--GTYPE-group-format=GFMT | Форматировать входные группы типа GTYPE в соответствии GFMT |
--line-format=LFMT | Форматировать все входные строки в соответствии с LFMT |
--LTYPE-line-format=LFMT | Форматировать входные строки типа LTYPE в соответствии LFMT |
-d, --minimal | Пытаться найти наименьший набор изменений |
--horizon-lines=Н | Оставлять Н общих строк до и после различающихся |
--speed-large-files | Предполагать, что файлы большие и есть много разбросанных мелких изменений |
--color[=КОГДА] | Вывод в цвете; КОГДА может быть «never», «always» или «auto»; без уточнения используется --color='auto' |
--palette=ПАЛИТРА | Набор цветов при активном --color; ПАЛИТРА это список свойств terminfo через двоеточие |
--help | Показать эту справку и выйти |
-v, --version | Показать информацию о версии и выйти |
Параметры форматирования предоставляют точный контроль над конечным diff
обобщающими -D/--ifdef.
LTYPE может быть:
Значение GTYPE может быть:
GFMT может содержать (только):
БУКВА принимает следующие значения для новых групп, для старых строчные:
LFMT может содержать (только):
GFMT и LFMT могут содержать:
ФАЙЛЫ это ?ФАЙЛ1 ФАЙЛ2?, ?КАТАЛОГ1 КАТАЛОГ2?, ?КАТАЛОГ ФАЙЛ??
или ?ФАЙЛ? КАТАЛОГ?.
Если задан --from-file
или --to-file
, то на ФАЙЛЫ нет ограничений.
Если ФАЙЛ задан как ?-?, читает стандартный ввод.
Выходной статус равен 0, если входные файлы идентичны, 1 ? если
различаются, и 2 в случае неполадок.
Утилита diff сравнивает содержимое file1 и file2 и выводит список различий между ними. Различия отображаются в формате контекстного диффа, который показывает добавленные и удаленные строки.
diff file1 file2
С опцией -u утилита diff выводит различия в формате unified diff, который позволяет более наглядно видеть изменения между файлами. Этот формат часто используется при сравнении исходных кодов.
diff -u file1 file2
Утилита diff может также сравнивать содержимое двух каталогов. Она рекурсивно сравнивает файлы внутри каталогов и выводит список различий между ними.
diff -r dir1 dir2
diff -b file1 file2
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".