DIFF(1)

НАИМЕНОВАНИЕ
diff — сравнить файлы построчно

ОБЗОР
diff [OPTION]... FILES

ОПИСАНИЕ
Сравнить файлы построчно.

Аргументы, обязательные для длинных параметров, обязательны и для коротких.

--normal
    вывести результат работы diff в обычном формате (по умолчанию)

-q, --brief
    выводить только информацию о том, что файлы различаются

-s, --report-identical-files
    выводить информацию об одинаковых файлах

-c, -C NUM, --context[=NUM]
    выводить ЧИСЛО строк (по умолчанию 3) скопированного контекста

-u, -U NUM, --unified[=NUM]
    выводить ЧИСЛО строк (по умолчанию 3) объединённого контекста

-e, --ed
    вывести сценарий для ed

-n, --rcs
    вывести результат работы diff в формате RCS

-y, --side-by-side
    осуществлять вывод в две колонки

-W, --width=NUM
    ограничить ширину выводимой информации заданным ЧИСЛОМ столбцов (по умолчанию 130)

--left-column
    выводить только левую колонку для одинаковых строк

--suppress-common-lines
    не выводить одинаковые строки

-p, --show-c-function
    отображать, в какой функции языка C обнаружено каждое из изменений

-F, --show-function-line=RE
    отображать последнюю строку, соответствующую РЕГУЛЯРНОМУ_ВЫРАЖЕНИЮ

--label МЕТКА
    использовать МЕТКУ вместо имени файла и временной метки (параметр может быть указан более одного раза)

-t, --expand-tabs
    преобразовывать символы табуляции в пробелы при выводе

-T, --initial-tab
    выравнивать табуляцию, выводя символ табуляции в начале строки

--tabsize=NUM
    задать шаг табуляции равным ЧИСЛУ столбцов выводимой информации (по умолчанию 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=PAT
    пропускать файлы, имена которых совпадают с ШАБЛОНом

-X, --exclude-from=FILE
    пропускать файлы, имена которых совпадают с шаблонами в указанном ФАЙЛе

-S, --starting-file=FILE
    начать с ФАЙЛа при сравнении каталогов

--from-file=FILE1
    сравнить ФАЙЛ1 со всеми операндами; ФАЙЛ1 может быть каталогом

--to-file=FILE2
    сравнить все операнды с ФАЙЛОМ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
    игнорировать изменения, все строки в которых соответствуют РЕГУЛЯРНОМУ_ВЫРАЖЕНИЮ

-a, --text
    обрабатывать все файлы как текстовые

--strip-trailing-cr
    удалять из входных данных завершающие символы возврата каретки

-D, --ifdef=NAME
    вывести объединённый файл, используя «#ifdef ИМЯ» для оформления различий

--GTYPE-group-format=GFMT
    форматировать группы входных строк типа ГТИП, используя ГФОРМАТ

--line-format=LFMT
    форматировать все входные строки, используя СФОРМАТ

--LTYPE-line-format=LFMT
    форматировать входные строки типа СТИП, используя СФОРМАТ

    Данные параметры форматирования обеспечивают детальный контроль над данными, выводимыми

    diff, выступая в качестве обобщённого варианта параметра -D/--ifdef.

СТИП может принимать значения «old» (старые), «new» (новые) или «unchanged» (неизменённые).
    ГТИП может принимать те же значения, что и СТИП, а также «changed» (изменённые).

    (Только) ГФОРМАТ может содержать:

%<  строки из ФАЙЛА1

%>  строки из ФАЙЛА2

%=  строки, совпадающие в ФАЙЛЕ1 и ФАЙЛЕ2

%[-][ШИРИНА][.[ТОЧН]]{doxX}БУКВА
    printf-подобный формат числа, задаваемого БУКВОЙ

    БУКВЫ употребляются в следующем виде для новых групп и в нижнем регистре для старых:

F   номер первой строки

L   номер последней строки

N   количество строк = L-F+1

E   F-1

M   L+1

%(A=B?T:E)
    если A равно B, то T, иначе E

    (Только) СФОРМАТ может содержать:

%L  содержимое строки

%l  содержимое строки за исключением завершающего её перевода на новую строку

%[-][ШИРИНА][.[ТОЧН]]{doxX}n
    printf-подобный формат номера строки во входных данных

    И ГФОРМАТ, и СФОРМАТ могут содержать:

%%  %

%c'С'
    одиночный символ С

%c'\ВВВ'
    символ с восьмеричным кодом ВВВ

С   символ С (остальные символы воспринимаются буквально)

-d, --minimal
    пытаться обнаружить меньший набор изменений

--horizon-lines=NUM
    оставлять ЧИСЛО строк в совпадающих префиксе и суффиксе

--speed-large-files
    при сравнении ожидать большие файлы и множество разрозненных небольших изменений

--color[=УСЛОВИЕ]
    выделять выходные данные цветом; КОГДА может принимать значения «never» (никогда), «always» (всегда) или «auto» (автоматически); простое указание --color подразумевает --color='auto'

--palette=PALETTE
    задать цвета, используемые при активном параметре --color; ПАЛИТРА представляет собой список возможностей terminfo, разделённых двоеточием

--help
    отобразить эту справочную информацию и завершить работу

-v, --version
    вывести информацию о версии и завершить работу

Аргумент ФАЙЛЫ принимает вид «ФАЙЛ1 ФАЙЛ2», «КАТАЛОГ1 КАТАЛОГ2», «КАТАЛОГ ФАЙЛ» или «ФАЙЛ КАТАЛОГ». Если указан параметр --from-file или --to-file, то ограничений на ФАЙЛы не накладывается. Если ФАЙЛ задан как «-», читать из стандартного потока ввода. Код завершения равен 0, если входные данные совпадают, 1, если они различаются, и 2, если произошла ошибка.

АВТОРЫ
Программа написана Полом Эггертом (Paul Eggert), Майком Хэртелом (Mike Haertel), Дэвидом Хейзом (David Hayes), Ричардом Столлманом (Richard Stallman) и Леном Тауэром (Len Tower).

ИНФОРМАЦИЯ ОБ ОШИБКАХ
Сообщайте об ошибках по адресу bug-diffutils@gnu.org
Домашняя страница GNU diffutils: <https://www.gnu.org/software/diffutils/>
Общая помощь по использованию программного обеспечения GNU: <https://www.gnu.org/software/gethelp.ru.html>

АВТОРСКИЕ ПРАВА
Copyright © 2025 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
Это свободное программное обеспечение: вы можете изменять и распространять его. Не предоставляется НИКАКИХ ГАРАНТИЙ в той мере, в которой это разрешено законом.

СМОТРИТЕ ТАКЖЕ
wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)

Полная документация для diff ведётся в форме руководства Texinfo. Если программы info и diff корректно установлены в вашей системе, команда

    info diff

должна предоставить вам доступ к полному руководству.

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Андрей Догадкин <adogadkin@outlook.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).