MAN diff 1
Материал из Gentoo Linux Wiki
- Вернуться в раздел мануалов
Содержание |
[править] Название
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@perm.ru> 2003
[править] Комментарии к man файлу
Date: Fri, 11 Sep 1998 19:13:45 +0100
From: Edward Betts <edward@hairnet.demon.co.uk>
Derived from the GNU diff info page.
May be distributed under the GPL.
Дата последней коррекции перевода 30.11.2003
Перевод с английского выполнил Виктор Вислобоков <corochoone@perm.ru>
http://www.linuxshare.ru/projects/trans/mans.html
Вычитано и скорректировано by alexm@hsys.msk.ru для проекта
http://alexm.here.ru/manpages-ru/
