Формат запуска команды 'diff' следующий:
diff OPTIONS... FROM-FILE TO-FILE
В простейшем случае, 'diff' сравнивает содержимое двух файлов
FROM-FILE и TO-FILE. Имя файла '-' обозначает текст, считываемый с
помощью стандартного ввода. В частности, 'diff - -' сравнивает копию
стандартного ввода саму с собой.
Если FROM-FILE - каталог, а TO-FILE - нет, 'diff' сравнивает файл из FROM-FILE, чье имя совпадает с TO-FILE; и наоборот. В этой ситуации, файл, не являющийся каталогом, не должен быть '-'.
Если и FROM-FILE, и TO-FILE - каталоги, 'diff' сравнивает соответствующие файлы в этих каталогах, в алфавитном порядке; это сравнение не является рекурсивным, если не указана опция '-r' или '--recursive'. 'diff' никогда не сравнивает содержимое каталогов, как файлов. Файл, заданный полностью, не может быть введен стандартным вводом, потому что стандартный ввод безымянен и понятие "файл с тем же именем" неприменимо.
Опции 'diff' начинаются с '-', так что обычно имена FROM-FILE и TO-FILE не могут начинаться с '-'. Однако, '--' как аргумент сам по себе заставляет воспринимать оставшиеся аргументы как имена файлов, даже если они начинаются с '-'.
Код завершения 0 означает, что различий не найдено, 1 - найдены некоторые различия, 2 - обнаружена ошибка.
Далее приводится суммарное изложение опций воспринмаемых GNU 'diff'. Большинство опций имеют два эквивалентных имени, одно из которых - буква, предваряемая '-', а второе - длинное имя, предваряемое '--'. Объединение однобуквенных опций (если они не имеют аргумента) может быть скомбинировано в одну слово командой строки: '-ac' эквивалентно '-a -c'. Опции с длинными именами могут быть сокращены любым уникальным началом их имени. Квадратные скобки ([ и ]) означают, что у опции необязательный аргумент.
Показывает LINES (целое число) строк контекста. Эта опция не задает сама по себе формат вывода; и не действует без опции '-c' (см. Контекстный формат::.) или '-u' (см. Унифицированный формат::.). Эта опция является устаревшей. Для правильной работы, 'patch' обычно необходимо по крайней мере две строки контекста.
'-a' Воспринимает все файлы как текстовые и сравнивает их строка за строкой, даже если они не похожи на текст. Cм. "Двоичные файлы и принудительное текстовое сравнение".
Игнорирует изменения в количестве "пропусков" (пробелов, табуляций, и т.д.). См. "Пропуски".
Игнорирует изменения - вставки и удаления пустых строк. См. "Пустые строки".
Считывает и записывает данные в двоичном формате. См. "Двоичный формат".
Сообщает только отличаются ли файлы, не уточняя различий.
Задает контекстный формат.
При использовании контекстного формата, показывает LINES (целое) строк контекста, или три, если LINES не указано. Для правильной работы, 'patch' необходимо по крайней мере две строки контекста.
Использует FORMAT для вывода групп строк содержащих различающиеся строки из обоих файлов в формате if-then-else. Cм. "Формат групп строк".
Изменяет алгоритм, возможно находя меньший набор изменений. Это замедляет 'diff' (иногда очень сильно). См. "Издержки в производительности diff".
Задает объединенный формат вывода '#ifdef', в соответствии с макросом препроцессора NAME. См. "Детальное описание формата if-then-else".
Задает вывод в формате 'ed' скрипта. См. "ed-скрипт формат".
При сравнивании каталогов, игнорирует файлы и подкаталоги, имена которых совпадают с шаблоном. См. "Сравнение каталогов".
При сравнивании каталогов, игнорирует файлы и подкаталоги, начинающиеся с шаблонов, содержащихся в FILE. См. "Сравнение каталогов".
Заменяет табуляцию на пробелы при выводе, для сохранения выравнивания по табуляции во входных файлах.
Задает формат вывода подобный 'ed' скрипту, но с изменением порядка ханков. См. "Прямой ed формат".
В контекстном и унифицированном форматах, для каждого ханка различий, показывает ближайшую предшествующую строку, соответствующую регулярному выражению REGEXP. См. "Задание заголовков".
Задает формат вывода подобный 'ed' скрипту, но с изменением порядка ханков. См. "Прямой ed формат".
Эта опция в данный момент не используется; присутствует для совместимости с другими версиями Unix.
Использует эвристику для быстрой обработки больших файлов, имеющих много рассеянных маленьких изменений. Cм. "Издержки в производительности diff".
Не дает отбрасывать последние LINES строк начала и первые LINES строк конца файла. См. "Издержки в производительности diff".
Игнорирует изменения в строчных и прописных буквах, считая их эквивалентными.
Игнорирует изменения - вставки и удаления строк, соответствующих регулярному выражению REGEXP.
Игнорирование "пропусков" при сравнении строк. См. "Пропуски".
Игнорирует изменения - вставки и удаления пустых строк. См. "Пустые строки".
Игнорирует изменения в строчных и прописных буквах, считая их эквивалентными.
Игнорирует изменения - вставки и удаления строк соответствующих регулярному выражению REGEXP.
Игнорирует изменения в количестве "пропусков". См. "Пропуски".
Заменяет на табуляцию пробелы перед текстом строки в нормальном или контекстном формате. Благодаря этому выравнивание по табуляции в строках выглядит нормально.
Пропускает результаты работы через 'pr' для разбивки на страницы. См. "Разбивка результатов diff на страницы".
Использует LABEL вместо имени файла в заголовках контекстного (см. "Контекстный формат") и унифицированного формате (см. "Унифицированный формат").
Использует LABEL вместо имени файла в заголовках контекстного (см. "Контекстный формат") и унифицированного (см. "Унифицированный формат") форматов.
Печатает только левую колонку для двух общих строк в сравнительном формате. См. "Сравнительный формат".
Использует FORMAT для вывода всех входных строк в формате if-then-else. См. "Строчный формат".
Изменяет алгоритм, возможно находя меньший набор изменений. Это замедляет 'diff' (иногда очень сильно). См. "Издержки в производительности diff".
Задает RCS-формат списков разлчий; аналогичен '-f' за исключением того, что в каждой команде указывает номер строки, на которую она действует.
При сравнении каталогов, если файл найден только в одном каталоге, считает что он находится и во втором, но является пустым. См. "Сравнение каталогов".
Использует FORMAT для вывода группы строк, взятой из второго файла (присутствующей только в нем) в формате if-then-else. См. "Форматы группы строк".
Использует FORMAT для вывода группы строк, взятой из первого файла (присутствующей только в нем) в формате if-then-else. См. "Форматы группы строк".
Использует FORMAT для вывода строки, взятой из первого файла (присутствующей только в нем) в формате if-then-else. См. "Форматы группы строк".
Показывает к какой функции C относится каждое изменение. См. "Заголовки функций С".
При сравнении каталогов, если файл находится только в одном каталоге из двух, считает что он находится и в первом, но является пустым. См. "Сравнение каталогов".
Пропускает результаты работы через 'pr' для разбивки на страницы. См. "Разбивка результатов diff на страницы".
Сообщает только что файлы различаются, не уточняя различий.
При сравнивании каталогов, рекурсивно сравнивает все найденные подкаталоги. См. "Сравнение каталогов".
Задает RCS-формат; аналогичен '-f', за исключением того, что в каждой команде указывает номер строки, на которую она действует.
При сравнивании каталогов, рекурсивно сравнивает все найденные подкаталоги. См. "Сравнение каталогов".
Сообщает об одинаковых файлах. См. "Сравнение каталогов".
Сообщает об одинаковых файлах. См. "Сравнение каталогов".
При сравнивании каталогов начинает с файла FILE. Это позволяет возобновлять прерванное сравнение. См. "Сравнение каталогов".
Печатает дополнительную информацию в помощь 'sdiff'. 'sdiff' использует эту опцию при запуске 'diff'. Эта опция не задумана для прямого использования пользователями.
Показывает к какой функции C относится каждое изменение. См. "Заголовки функций С".
В контекстном и унифицированном форматах, для каждого ханка различий, показывает ближайшую предшествующую строку, соответствующую регулярному выражению.
Задает сравнительный формат. См. "Сравнительный формат".
Использует эвристику для быстрой обработки больших файлов, имеющих много рассеянных маленьких изменений. Cм. "Издержки в производительности diff".
При сравнивании каталогов начинает с файла FILE. Это позволяет возобновлять прерванное сравнение. См. "Сравнение каталогов".
Не печатет общие строки в сравнительном формате. См. "Сравнительный формат".
Заменяет табуляцию на пробелы при выводе, для сохранения выравнивания по табуляции во входных файлах.
Заменяет на табуляцию пробелы перед текстом строки в нормальном или контекстном формате. Благодаря этому выравнивание по табуляции в строках выглядит нормально.
Рассматривает все файлы как текстовые и сравнивает их строка за строкой, даже если они не похожи на текст.
Задает унифицированный формат. См. "Унифицированный формат".
Использует FORMAT для вывода общей группы строк, взятой из обоих файлов в формате if-then-else. См. "Строчный формат".
Использует FORMAT для вывода общей строки, взятой из обоих файлов в формате if-then-else. См. "Строчный формат".
При сравнении каталогов, если файл находится только в одном каталоге из двух, считает что он находится и в первом, но является пустым. См. "Сравнение каталогов".
Задает унифицированный формат, показывающий LINES (целое) строк контекста, или три, если LINES не задано. См. "Унифицированный формат". Для правильной работы, 'patch' необходимо по крайней мере две строки контекста.
Выводит номер версии 'diff'.
Игнорирует "пропуски" при сравнении строк.
Задает ширину вывода равную COLUMNS в сравнительном формате. См. "Сравнительный формат".
При сравнивании каталогов, игнорирует файлы и подкаталоги, имена которых начинаются с PATTERN. См. "Сравнение каталогов".
При сравнивании каталогов, игнорирует файлы и подкаталоги, соответствующие шаблонам, содержащимся в файле FILE. начинающиеся с $$patterns$$, содержащихся в FILE. См. "Сравнение каталогов".
Задает сравнительный формат. См. "Сравнительный формат".