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 обычно нужно не менее двух строк контекста.
- -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
1993-09-22 | Инструменты GNU |