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
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены после перезагрузки.
Если режим загрузки другой, то рекомендуется воспользоваться утилитой "Сохранение изменений" до перезагрузки системы.