Manpages

НАЗВАНИЕ

diff − ищет различия между двумя файлами

ОБЗОР

diff [опции] from-файл to-файл

ОПИСАНИЕ

В простейшем случае diff сравнивает содержимое двух файлов, from-файла и to-файла. Имя файла означает, что текст должен читаться из стандартного ввода. В специальном случае diff − − сравнивает копию стандартного ввода с ней же.

Если from-файл -- это каталог, а to-файл -- нет, то diff сравнивает файл from-файл/to-файл с файлом to-file. Точно так же для случая, когда from-файл -- это не каталог, а to-файл -- каталог. Файл, который не является каталогом, не должен быть .

Если и from-файл, и to-файл -- каталоги, то diff сравнивает соответствующие файлы в обоих каталогах, в алфавитном порядке; данное сравнение будет выполняться рекурсивно, если задана опция −r или опция −−recursive . diff никогда не сравнивает сырое содержимое каталогов, как если бы они были файлами. Полностью заданный файл не может быть стандартным вводом, потому что стандартный ввод не имеет имени и понятие ’’файл с таким же именем’’ не применяется.

Опции diff начинаются с , так что обычно from-файл и to-файл не могут начинаться с символа . Однако, аргумент −− говорит, что опции закончились и следующий за ним аргумент является именем файла, даже если он начинается с символа .

Опции
Ниже дан список всех опций, с которыми работает GNU diff . Большинство опций имеет два эквивалентных названия: однобуквенное, которое начинается с , и длинное, начинающееся с −−. Несколько однобуквенных опций, не имеющих аргументов, могут быть скомбинированы в одно слово: −ac эквивалентно −a −c. Для опций, которые имеют длинные имена, допускаются однозначные сокращения. Скобки ([ и ]) означают, что опция имеет необязательный аргумент.
количество_строк

Показывает количество_строк контекста. Сама данная опция не задает формат вывода; она не оказывает влияния, пока не комбинируется с опциями −c или −u. Данная опция устарела. Для выполнения нужной операции, программе patch обычно нужно не менее двух строк контекста.

−a

Считать все файлы текстовыми и сравнивать их построчно, даже если они не выглядят текстовыми.

−b

Игнорировать изменения в количестве пробелов, табуляций и т. п.

−B

Игнорировать изменения, касающиеся только вставки или удаления пустых строк.

−−brief

Извещать только о самом факте различия файлов, без каких-либо подробностей.

−c

Использовать контекстный формат вывода.

−C количество_строк
−−context[=
количество_строк]

Использовать контекстный формат вывода, показывая заданное количество строк контекста, или три строки, если это количество не задано. Для корректной работы программе patch обычно нужно не менее двух строк контекста.

−−changed−group−format=формат

Использовать заданный формат для вывода группы строк, содержащей различающиеся строки из обоих файлов в формате если-то-иначе.

−d

Включает алгоритм поиска минимального набора изменений. Применение этой опции делает работу diff более медленной (иногда очень медленной).

−D имя

Показывает объединенные изменения в файлах, выводя их в формате если-то-иначе, с использованием директивы препроцессора #define имя

−e

−−ed

Создает вывод в форме сценария для ed.

−−exclude=шаблон

При сравнении каталогов игнорирует файлы и подкаталоги, чьи имена совпадают с шаблоном.

−−exclude−from=файл

При сравнении каталогов игнорирует файлы и подкаталоги, чьи имена совпадают с шаблонами, находящимся в файле.

−−expand−tabs

При выводе заменяет табуляцию пробелами для сохранения выравнивания во входных файлах.

−f

Делает вывод похожим на сценарий для ed, но изменения показываются в том порядке, в котором они встречаются в файле.

−F регулярное_выражение

В контекстном и унифицированном формате, для каждой порции различий, показывать несколько строк, предшествующих этой порции, которые совпадают с регулярным_выражением.

−−forward−ed

Делает вывод похожим на сценарий для ed, но изменения показываются в том порядке, в котором они встречаются в файле.

−h

Данная опция в данный момент не оказывает никакого эффекта; она предоставляется для совместимости с Unix.

−H

Использовать эвристики для быстрой обработки больших файлов, которые имеют несколько маленьких изменений, разбросанных по файлу.

−−horizon−lines=lines

Не отбрасывать последние lines общих для обоих файлов перед и первые lines общих для обоих файлов строк после.

−i

Игнорировать изменения в регистре символов; считать буквы верхнего и нижнего регистров (строчные и прописные) эквивалентными.

−I регулярное_выражение

Игнорировать изменения, которые касаются только вставки или удаления строк, совпадающих с регулярным_выражением.

−−ifdef=имя

Показывает объединенные изменения в файлах, выводя их в формате если-то-иначе, с использованием директивы препроцессора #define имя

−−ignore−all−space

Игнорировать изменения в количестве пробелов, табуляций и т. п.

−−ignore−blank−lines

Игнорировать изменения, касающиеся только вставки или удаления пустых строк.

−−ignore−case

Игнорировать изменения в регистре символов; считать буквы верхнего и нижнего регистров (строчные и прописные) эквивалентными.

−−ignore−matching−lines=регулярное_выражение

Игнорировать изменения, касающиеся только вставки и удаления строк, совпадающих с регулярным_выражением.

−−ignore−space−change

Игнорировать изменение количества пробелов, табуляций и т. п.

−−initial−tab

Выводить перед строкой текста в нормальном или контекстном формате табуляцию вместо пробела. За счет выравнивания по границам табуляции получается нормальный вид строки.

−l

Передавать результат команде pr для разбития его на страницы.

−L метка
−−label=
метка

Использовать метку вместо имени файла в заголовке контекстного и унифицированного формата.

−−left−column

Выводить только левую колонку для двух общих (для обоих файлов) строк при двухстороннем формате.

−−line−format=формат

Использовать заданный формат для вывода всех входных строк в формате если-то-иначе.

−−minimal

Включает алгоритм поиска минимального набора изменений. Применение этой опции делает работу diff более медленной (иногда очень медленной).

−n

Вывод в формате RCS-diff; как и в опции −f за исключением того, что каждая команда задает количество затронутых строк.

−N

−−new−file

При сравнении каталогов, если файл найден только в одном каталоге, то считать, что он существует и в другом каталоге, но является пустым.

−−new−group−format=формат

Использовать заданный формат для вывода группы строк, которая берется только из второго файла в формате если-то-иначе.

−−new−line−format=формат

Использовать заданный формат для вывода строки, которая берется только из второго файла в формате если-то-иначе.

−−old−group−format=format

Использовать заданный формат для вывода группы строк, которая берется только из первого файла в формате если-то-иначе.

−−old−line−format=format

Использовать заданный формат для вывода строки, которая берется только из первого файла в формате если-то-иначе.

−p

Показывать, внутри каких функций языка C происходит каждое изменение.

−P

При сравнении каталогов, если файл существует только во втором каталоге, то считать, что он есть и в другом каталоге, но только пустой.

−−paginate

Передавать результат команде pr для разбития его на страницы.

−q

Извещать только о самом факте различия файлов, без каких-либо подробностей.

−r

При сравнении каталогов производить рекурсивное сравнение всех найденных подкаталогов.

−−rcs

Вывод в формате RCS-diff; как и в опции −f за исключением того, что каждая команда задает количество затронутых строк.

−−recursive

При сравнении каталогов производить рекурсивное сравнение всех найденных подкаталогов.

−−report−identical−files

−s

Сообщать, что два файла являются одинаковыми.

−S файл

При сравнении каталогов начинать с файла файл. Данная опция используется для продолжения прерванного процесса сравнения.

−−sdiff−merge−assist

Выдавать дополнительную информацию, чтобы помочь программе sdiff. sdiff использует данную опцию, когда он запускает diff. Данная опция задумывалась не для использования человеком.

−−show−c−function

Показывать, внутри каких функций языка C происходит каждое изменение.

−−show−function−line=регулярное_выражение

В контекстном и унифицированном формате, для каждой порции различий, показывать несколько строк, предшествующих этому изменению, которые совпадают с регулярным_выражением.

−−side−by−side

Использовать двухсторонний формат вывода.

−−speed−large−files

Использовать эвристики для быстрой обработки больших файлов, которые содержат несколько небольших изменений, разбросанных по файлу.

−−starting−file=file

При сравнении каталогов начинать с файла файл. Данная опция используется для продолжения прерванного процесса сравнения.

−−suppress−common−lines

Не выводить общие для обоих файлов строки в двухстороннем формате.

−t

При выводе заменяет табуляцию пробелами для сохранения выравнивания.

−T

Выводить перед строкой текста в нормальном или контекстном формате табуляцию вместо пробелов. За счет выравнивания по границам табуляции получается нормальный вид строки.

−−text

Считать все файлы текстовыми и сверять их построчно, даже если они не выглядят, как текстовые.

−u

Использовать унифицированный формат вывода.

−−unchanged−group−format=формат

Использовать заданный формат для вывода группы общих для обоих файлов строк, которые берутся из обоих файлов в формате если-то-иначе.

−−unchanged−line−format=формат

Использовать заданный формат для вывода общей строки (для обоих файлов) в формате если-то-иначе.

−−unidirectional−new−file

При сравнении каталогов, если файл существует только во втором каталоге, то считать, что он есть и в другом каталоге, но только пустой.

−U lines
−−unified[=
количество_строк]

Использовать унифицированный формат вывода, показывая количество_строк содержимого или три строки, если это количество не задано. Для корректной работы программе patch обычно нужно не менее двух строк содержимого.

−v

−−version

Вывести номер версии diff.

−w

Игнорировать пробелы и табуляции при сравнении строк.

−W ширина
−−width=
ширина

Использовать при выводе в двухстороннем формате колонки заданной ширины .

−x шаблон

При сравнении каталогов игнорирует файлы и подкаталоги, чьи имена совпадают с шаблоном.

−X файл

При сравнении каталогов, игнорирует файлы и подкаталоги, чьи имена совпадают с шаблонами, находящимися в файле.

−y

Использовать двухсторонний формат.

СМ. ТАКЖЕ

cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

ДИАГНОСТИКА

Если код возврата равен 0, то различий найдено не было, если 1, то были найдены некоторые различия и если 2, то есть проблема.

ПЕРЕВОД

Перевёл с английского Виктор Вислобоков <corochoone [AT] perm.ru> 2003