НАЗВАНИЕ
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