Интерактивная система просмотра системных руководств (man-ов)
diff (1)
diff (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
diff (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
>> diff (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
diff (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
diff (1) ( POSIX man: Команды и прикладные программы пользовательского уровня )
diff (8) ( Русские man: Команды системного администрирования )
НАЗВАНИЕ
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 файл
При сравнении каталогов, игнорирует файлы и подкаталоги, чьи имена
совпадают с шаблонами, находящимися в
файле.