Scroll to navigation

DIFF(1) Инструменты GNU DIFF(1)

НАЗВАНИЕ

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 обычно нужно не менее двух строк контекста.
Считать все файлы текстовыми и сравнивать их построчно, даже если они не выглядят текстовыми.
Игнорировать изменения в количестве пробелов, табуляций и т. п.
Игнорировать изменения, касающиеся только вставки или удаления пустых строк.
Извещать только о самом факте различия файлов, без каких-либо подробностей.
Использовать контекстный формат вывода.

Использовать контекстный формат вывода, показывая заданное количество строк контекста, или три строки, если это количество не задано. Для корректной работы программе patch обычно нужно не менее двух строк контекста.
Использовать заданный формат для вывода группы строк, содержащей различающиеся строки из обоих файлов в формате если-то-иначе.
Включает алгоритм поиска минимального набора изменений. Применение этой опции делает работу diff более медленной (иногда очень медленной).
Показывает объединенные изменения в файлах, выводя их в формате если-то-иначе, с использованием директивы препроцессора #define имя

Создает вывод в форме сценария для ed.
При сравнении каталогов игнорирует файлы и подкаталоги, чьи имена совпадают с шаблоном.
При сравнении каталогов игнорирует файлы и подкаталоги, чьи имена совпадают с шаблонами, находящимся в файле.
При выводе заменяет табуляцию пробелами для сохранения выравнивания во входных файлах.
Делает вывод похожим на сценарий для ed, но изменения показываются в том порядке, в котором они встречаются в файле.
В контекстном и унифицированном формате, для каждой порции различий, показывать несколько строк, предшествующих этой порции, которые совпадают с регулярным_выражением.
Делает вывод похожим на сценарий для ed, но изменения показываются в том порядке, в котором они встречаются в файле.
Данная опция в данный момент не оказывает никакого эффекта; она предоставляется для совместимости с Unix.
Использовать эвристики для быстрой обработки больших файлов, которые имеют несколько маленьких изменений, разбросанных по файлу.
Не отбрасывать последние lines общих для обоих файлов перед и первые lines общих для обоих файлов строк после.
Игнорировать изменения в регистре символов; считать буквы верхнего и нижнего регистров (строчные и прописные) эквивалентными.
Игнорировать изменения, которые касаются только вставки или удаления строк, совпадающих с регулярным_выражением.
Показывает объединенные изменения в файлах, выводя их в формате если-то-иначе, с использованием директивы препроцессора #define имя
Игнорировать изменения в количестве пробелов, табуляций и т. п.
Игнорировать изменения, касающиеся только вставки или удаления пустых строк.
Игнорировать изменения в регистре символов; считать буквы верхнего и нижнего регистров (строчные и прописные) эквивалентными.
Игнорировать изменения, касающиеся только вставки и удаления строк, совпадающих с регулярным_выражением.
Игнорировать изменение количества пробелов, табуляций и т. п.
Выводить перед строкой текста в нормальном или контекстном формате табуляцию вместо пробела. За счет выравнивания по границам табуляции получается нормальный вид строки.
Передавать результат команде pr для разбития его на страницы.

Использовать метку вместо имени файла в заголовке контекстного и унифицированного формата.
Выводить только левую колонку для двух общих (для обоих файлов) строк при двухстороннем формате.
Использовать заданный формат для вывода всех входных строк в формате если-то-иначе.
Включает алгоритм поиска минимального набора изменений. Применение этой опции делает работу diff более медленной (иногда очень медленной).
Вывод в формате RCS-diff; как и в опции -f за исключением того, что каждая команда задает количество затронутых строк.

При сравнении каталогов, если файл найден только в одном каталоге, то считать, что он существует и в другом каталоге, но является пустым.
Использовать заданный формат для вывода группы строк, которая берется только из второго файла в формате если-то-иначе.
Использовать заданный формат для вывода строки, которая берется только из второго файла в формате если-то-иначе.
Использовать заданный формат для вывода группы строк, которая берется только из первого файла в формате если-то-иначе.
Использовать заданный формат для вывода строки, которая берется только из первого файла в формате если-то-иначе.
Показывать, внутри каких функций языка C происходит каждое изменение.
При сравнении каталогов, если файл существует только во втором каталоге, то считать, что он есть и в другом каталоге, но только пустой.
Передавать результат команде pr для разбития его на страницы.
Извещать только о самом факте различия файлов, без каких-либо подробностей.
При сравнении каталогов производить рекурсивное сравнение всех найденных подкаталогов.
Вывод в формате RCS-diff; как и в опции -f за исключением того, что каждая команда задает количество затронутых строк.
При сравнении каталогов производить рекурсивное сравнение всех найденных подкаталогов.

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

Использовать двухсторонний формат вывода.
Использовать эвристики для быстрой обработки больших файлов, которые содержат несколько небольших изменений, разбросанных по файлу.
При сравнении каталогов начинать с файла файл. Данная опция используется для продолжения прерванного процесса сравнения.
Не выводить общие для обоих файлов строки в двухстороннем формате.
При выводе заменяет табуляцию пробелами для сохранения выравнивания.
Выводить перед строкой текста в нормальном или контекстном формате табуляцию вместо пробелов. За счет выравнивания по границам табуляции получается нормальный вид строки.
Считать все файлы текстовыми и сверять их построчно, даже если они не выглядят, как текстовые.
Использовать унифицированный формат вывода.
Использовать заданный формат для вывода группы общих для обоих файлов строк, которые берутся из обоих файлов в формате если-то-иначе.
Использовать заданный формат для вывода общей строки (для обоих файлов) в формате если-то-иначе.
При сравнении каталогов, если файл существует только во втором каталоге, то считать, что он есть и в другом каталоге, но только пустой.

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

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

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

СМ. ТАКЖЕ

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

ДИАГНОСТИКА

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

ПЕРЕВОД

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

1993-09-22 Инструменты GNU