Главная > Обработка текста и поиск > patch

patch: Применение изменений (патчей) к файлам

Команда patch используется для применения изменений к исходным файлам с использованием файлов патчей (.patch), созданных командой 'diff'. Этот инструмент позволяет эффективно изменять исходный код или обновлять файлы конфигурации.

Обзор

patch — это утилита, которая считывает выходной файл, созданный командой diff (также известный как файл патча), и применяет изменения к исходному файлу. Этот файл патча обычно записывает, какие строки были добавлены, удалены или изменены. Команда patch изменяет исходный файл на основе этой информации. До появления систем контроля версий (CVS, Git и т.д.) это был основной способ обмена изменениями кода.

Основные особенности

Основные особенности команды patch:

  • Использует файлы патчей, сгенерированные командой diff.
  • Широко используется для обновления исходного кода, изменения файлов конфигурации и т.д.
  • Может обнаруживать и применять некоторые изменения, даже если исходный файл не полностью соответствует файлу патча.
  • Также предоставляет функцию отмены изменений (reverse).

Основные опции

Часто используемые опции команды patch сгруппированы по назначению.

1) Применение и отмена патчей

2) Справка

Сгенерированная команда:

Комбинируйте команды.

Описание:

`patch` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Изучите функциональность команды patch на различных примерах использования.

Применение файла патча

patch -p1 -i my_changes.patch

Применяет изменения к исходному файлу с помощью файла my_changes.patch. Опция `-p1` игнорирует первый компонент пути в файле патча.

Отмена изменений

patch -p1 -R -i my_changes.patch

Отменяет примененные изменения, используя опцию `-R`. Используется для возврата файла патча к исходному состоянию.

Применение патча через пайп

diff -u original_file.txt new_file.txt | patch -p0 original_file.txt

Передает вывод команды diff напрямую команде patch через пайп (`|`), применяя патч без создания файла патча.

Предварительный просмотр применения патча

patch --dry-run -p1 -i my_changes.patch

Используйте опцию `--dry-run`, чтобы заранее увидеть, какие изменения произойдут при применении патча.

Установка

patch включен по умолчанию в большинство дистрибутивов Linux. Если пакет отсутствует, вы можете установить пакет `patch` или `diffutils` следующим образом:

Debian/Ubuntu

sudo apt update && sudo apt install -y patch

RHEL/CentOS/Fedora

sudo dnf install -y patch

Arch Linux

sudo pacman -S --needed patch

Советы и примечания

Собраны важные моменты, которые следует учитывать при использовании команды patch.

Советы

  • Унифицированный формат, созданный с помощью `diff -u`, является наиболее распространенным форматом патчей. Использование этого формата повышает вероятность успешного применения патча.
  • Опция `-p` очень важна для игнорирования информации о пути в файле патча. Вы должны проверить заголовок файла патча, чтобы указать правильный уровень. Например, если путь `a/src/file.c`, использование `-p1` применит патч к `src/file.c`.
  • При неудачном применении патча создается файл с расширением `.rej`. Этот файл содержит части, которые не удалось пропатчить, и может быть использован для ручного исправления.
  • Рекомендуется создать резервную копию исходных файлов перед применением патча.

Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории