DIFF
Updated: 1993-09-22
Index Return to Main Contents
НАЗВАНИЕ
diff - находит различия между двумя файламиСИНТАКСИС
diff [опции] файл-1 файл-2ОПИСАНИЕ
В самом простом случае diff сравнивает содержимое двух файлов: файл-1 и файл-2. Если имя файла задано как -, то это означает, что будет использоваться стандартный ввод. Команда diff - - сравнивает стандартный ввод с этим же стандартным вводом. Если файл-1 - это каталог, а файл-2 - нет, то diff сравнивает файл, находящийся в каталоге файл-1, имя которого совпадает с именем файла-2, и наоборот. В этом случае файл (не каталог) не может быть -. Если и файл-1, и файл-2 - это каталоги, то diff сравнивает соответствующие файлы в обоих каталогах в алфавитном порядке; это сравнение не будет рекурсивным, если не задана опция -r или --recursive. diff никогда не сравнивает компоненты содержимого каталога (так же, как если бы он был файлом). Полностью заданное имя файла не может быть стандартным вводом, потому что стандартный ввод не имеет имени. В связи с этим указание ``файл с тем же именем'' не работает. Опции diff обычно начинаются с символа -, поэтому обычно имена файл-1 и файл-2 не могут начинаться с -. Однако, если использовать знак -- в качестве аргумента, то это приведет к тому, что все следующие параметры команды воспринимаются как имена файлов, даже если они начинаются с -.Опции
Ниже приведен список всех опций, воспринимаемых GNU diff. Многие опции имеют две нотации: краткую, состоящую из -, и одной буквы, и длинную, состоящую из символов -- и названия опции. Несколько кратких нотаций могут быть объединены (если у них нет своих аргументов), например, запись -ac эквивалентна -a -c. Длинные нотации могут быть сокращены до уникального префикса их имени. Скобки ([ и ]) означают, что за опцией может следовать необязательный аргумент.- -N
- Показать N (целое число) строк содержимого. Эта опция не задает формат вывода; она сама по себе не имеет никакого эффекта, если не используется опция -c или -u. Эта опция устарела. Для нормальной работы patch обычно требуется как минимум 2 строки содержимого.
- -a
- Считывает все файлы как текстовые и сравнивает их построчно, даже если они не похожи на текстовые.
- -b
- Игнорирует изменения в количестве пустых мест.
- -B
- Игнорирует изменения, состоящие в наличии или отсутствии пустых строк.
- --brief
- Определяет лишь тот факт, что файлы различаются, не вдаваясь в суть этих различий.
- -c
- Использует контекстный формат вывода.
- -C N
-
- --context[=N]
- Использует контекстный формат вывода, показывая N (целое число) строк контекста или три строки, если количество строк lines не задано. Для нормальной работы patch требуется как минимум две строки контекста.
- --changed-group-format=формат
- Использовать формат для вывода груп строк, содержащих различия между файлами, в формате if-then-else (если-то-иначе).
- -d
- Изменяет алгоритм сравнения для поиска незначительных различий. В результате этого diff будет работать медленнее (иногда значительно медленнее).
- -D имя
- Создает объединенный формат if-then-else, который зависит от параметра имя макроса препроцессора.
- -e
-
- --ed
- Создает на выходе работающий скрипт для редактора ed.
- --exclude=маска
- При сравнении каталогов игнорирует файлы и подкаталоги, имена которых соответствуют параметру маска.
- --exclude-from=файл
- При сравнении каталогов игнорируются файлы и подкаталоги, имена которых соответствуют маскам, находящимся в аргументе файл.
- --expand-tabs
- Преобразовывает табуляции в пробелы для того, чтобы сохранить отступ строк во входных файлах.
- -f
- Создает выходной файл в формате скрипта ed так, чтобы изменения шли в том порядке, в котором они внесены в файл.
- -F регулярное_выражение
- В контекстном и унифицированном форматах для каждого блока изменений выводить строку, предшествующую этим изменениям и соответствующую аргументу регулярное_выражение.
- --forward-ed
- Создает выходной файл в формате скрипта ed так, чтобы изменения шли в том порядке, в котором они внесены в файл.
- -h
- Эта опция неэффективна в работе: она существует для совместимости с Unix.
- -H
- Использует эвристический анализ для обработки больших файлов, в которые внесены множественные незначительные изменения.
- --horizon-lines=N
- Не игнорирует последние N строк общего префикса и первые N строк общего суффикса.
- -i
- Игнорирует различия в регистре букв.
- -I регулярное_выражение
- Игнорирует изменения, состоящие в добавлении или удалении строк, соответствующих аргументу регулярное_выражение.
- --ifdef=имя
- Использует объединенный формат if-then-else, зависящий от аргумента имя макроса препроцессора.
- --ignore-all-space
- Игнорирует пустое пространство при сравнении строк.
- --ignore-blank-lines
- Игнорирует изменения, состоящие в наличии или отсутствии пустых строк.
- --ignore-case
- Игнорирует различия в регистре: считает строчные и прописные буквы идентичными.
- --ignore-matching-lines=регулярное_выражение
- Игнорирует изменения, состоящие в добавлении или удалении строк, соответствующих аргументу регулярное_выражение.
- --ignore-space-change
- Игнорирует изменения в количестве непечатаемых символов (пробелов, табуляции и т.д.).
- --initial-tab
- Выводит табуляцию вместо пробела до начала строки в обычном или контекстном выводе. В результате этого табуляция в самой строке будет правильнее.
- -l
- Обрабатывает результат программой pr для разделения его на страницы.
- -L метка
-
- --метка=метка
- метка используетса в заголовках контекстного и унифицированного форматов, вместо имени файла.
- --left-column
- Выводит только левую колонку двух общих строк при двухколоночном выводе.
- --line-format=формат
- Использует формат для вывода всех входных строк в формате if-then-else.
- --minimal
- Изменяет алгоритм сравнения для поиска незначительных различий. В результате этого diff будет работать медленнее (иногда значительно медленнее).
- -n
- Выводит различие в формате RCS; это практически аналогично -f за исключением того, что каждая команда задает количество строк, подвергающихся изменению.
- -N
-
- --new-file
- Если при сравнении каталогов один из файлов найден только в одном каталоге, то считать, что он есть и в другом каталоге и он пуст.
- --new-group-format=формат
- При выводе в формате if-then-else использовать формат для вывода групп строк, взятых только из второго файла.
- --new-line-format=формат
- При выводе в формате if-then-else использовать формат для вывода строк, взятых только из второго файла.
- --old-group-format=формат
- При выводе в формате if-then-else использовать формат для вывода групп строк, взятых только из первого файла.
- --old-line-format=формат
- При выводе в формате if-then-else использовать формат для вывода строк, взятых только из первого файла.
- -p
- Вывести список функций С, в которые внесены изменения.
- -P
- Если при сравнении каталогов файл есть только во втором, то считать, что он есть и в первом каталоге и он пуст.
- --paginate
- Обрабатывает результат программой pr для разделения его на страницы.
- -q
- Устанавливает лишь факт, что файлы различаются, не определяя сути этих различий.
- -r
- При сравнении каталогов рекурсивно сравнивать содержимое подкаталогов (если таковые есть).
- --rcs
- Выводит различие в формате RCS; это практически аналогично -f за исключением того, что каждая команда задает количество строк, подвергающихся изменению.
- --recursive
- При сравнении каталогов рекурсивно сравнивать содержимое подкаталогов (если они есть).
- --report-identical-files
-
- -s
- Выводит сообщения, если два файла идентичны.
- -S файл
- При сравнении каталогов начать сравнение с файла файл. Это можно использовать для продолжения прерванного сравнения.
- --sdiff-merge-assist
- Выводит дополнительную информацию, необходимую sdiff. sdiff использует эту опцию при запуске diff. Эта опция не предназначена для прямого запуска пользователями.
- --show-c-function
- Вывести список функций С, в которые внесены изменения.
- --show-function-line=регулярное_выражение
- В контекстом и унифицированном форматах для каждого блока изменений выводит строку, предшествующую этим изменениям, соответствующую аргументу регулярное_выражение.
- --side-by-side
- Использует двухколоночный вывод.
- --speed-large-files
- Использует эвристический анализ для обработки больших файлов, в которые внесены разбросанные множественные, но незначительные изменения.
- --starting-file=файл
- При сравнении каталогов начать сравнение с файла файл. Эту опцию можно использовать для продолжения прерванного сравнения.
- --suppress-common-lines
- Не выводит общие строки при двухколоночном выводе.
- -t
- Преобразовывает табуляцию в пробелы для того, чтобы сохранить отступ строк во входных файлах.
- -T
- Выводит табуляцию вместо пробела до начала строки в обычном или контекстном режиме. В результате этого отступ табуляций в самой строке будет правильнее.
- --text
- Считывает все файлы, как текстовые и сравнивает их построчно, даже если они не похожи на текстовые.
- -u
- Использует унифицированный формат вывода.
- --unchanged-group-format=формат
- Использует формат для вывода групп строк, совпадающих в обоих файлах, в формате if-then-else.
- --unchanged-line-format=формат
- Использует формат для вывода совпадающих в обоих файлах строк в формате if-then-else.
- --unidirectional-new-file
- Если при сравнении каталогов файл есть только во втором, то считать, что он есть и в первом каталоге и он пуст.
- -U N
-
- --unified[=N]
- Использует унифицированный формат вывода, показывая N (целое число) строк контекста или 3 строки, если число N не задано. Для нормальной работы patch требуется как минимум две контекстные строки.
- -v
-
- --version
- Выводит текущую версию программы diff.
- -w
- Игнорирует пустое пространство при сравнении строк.
- -W N
-
- --width=N
- Выводит колонки шириной N символов при двухколоночном выводе.
- -x маска
- При сравнении каталогов игнорирует файлы и подкаталоги, имена которых соответствуют аргументу маска.
- -X файл
- При сравнении каталогов игнорирует файлы и подкаталоги, имена которых соответствуют маскам, находящимся в аргументе файл.
- -y
- Использует двухколоночный вывод.
СМ. ТАКЖЕ
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).ДИАГНОСТИКА
Коды завершения программы: 0 - различий не найдено, 1 - найдены различия между файлами, 2 - возникла какая-либо ошибка.
Index
- НАЗВАНИЕ
- СИНТАКСИС
- ОПИСАНИЕ
-
- Опции
- СМ. ТАКЖЕ
- ДИАГНОСТИКА