patch (UNIX)

patch (UNIX)
patch
Разработчик

Andreas Gruenbacher, Jim Meyering

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

2.7 (12 сентября 2012)

Лицензия

GPL

Сайт

savannah.gnu.org/projects/patch/

patch — программная утилита Unix, предназначенная для переноса правок (изменений) между разными версиями текстовых файлов. Информация о правке обычно содержится в отдельном файле, называемом «правкой» или «файлом правки» (англ. patch file). Подобный файл, как правило, создается с помощью другой утилиты Unix — diff, позволяющей автоматически извлечь информацию о различиях в тексте файлов.

Содержание

История

Оригинальная версия программы patch была написана будущим автором Perl Larry Wall (posted to mod.sources) . Сегодня программа patch является частью GNU проекта и поддерживается FSF.

Использование

В то время как исходным предназначением программы был перенос различий между версиями файлов программ (так, что программист, внесший в свою программу полезные изменения, мог поделиться этими изменениями с другими программистами, использующими предыдущие версии кода), patch может использоваться для переноса различий между любыми двумя текстовыми файлами, включая, но не ограничиваясь, программную документацию, html-файлы и т. д.

«Файлы правок», или «патчи», или, неформально, «заплатки», используемые утилитой patch («patch files», «patches»), являются текстовыми файлами специального формата. В отличие от них, существуют также бинарные файлы сходного назначения, однако последние, как правило, не имеют ничего общего с утилитой patch и связаны с задачами внесения изменений в бинарные (нетекстовые) файлы, в т. числе — исполняемые файлы программ.

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

Для создания патча, или файла правки, с помощью утилиты diff, выполните в командной строке:

 $ diff -u старый_файл новый_файл > разница.diff
 # ключ -u командует diff выдавать разницу в т.наз. стандартном ("унифицированном") формате     

Чтобы применить полученный патч, наберите в командной строке:

 $ patch < разница.diff

(и нажмите «ввод»).

Выполнение последней команды перенесет разницу из нового файла в старый, обновив старый файл. (Если старый файл не будет найден по заданному пути, программа выдаст ошибку.)

Патч можно «откатить», то есть отменить, передав программе patch ключ -R:

 $ patch -R < разница.diff

Как правило, утилита patch способна правильно обновить файл и в том случае, когда он несколько изменился (например, был отредактирован в области, не перекрывающейся с областью применения текущей «заплатки»).

Для этого утилита patch использует «контекст» — несколько строчек, соседних с областью применения патча, хранящихся в файле правки наряду с другой информацией о замене.

Однако в случае существенного расхождения файла, к которому применяется («накладывается») патч, и исходного файла, использовавшегося при создании патча, корректность применения патча, вообще говоря, не гарантируется.

Портирование (перенос на другие платформы)

Созданная для применения на Unix-системах, утилита patch была впоследствии перенесена на платформу Windows и некоторые другие. Версии patch для Windows можно найти в пакетах GnuWin32 и UnxUtils, а также в среде Cygwin.

См. также

Внешние ссылки

  • patch(1): применение файла различий (diff) к оригиналу — страница справки man по пользовательским командам GNU/Linux  (англ.)
  • Patchutils — Дополнительные программы для работы с патчами
  • GNU tools for Win32 — Win32-порт утилит GNU, включая diff и patch
  • diffstat — выдача статистики на основе вывода утилиты diff

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "patch (UNIX)" в других словарях:

  • Patch (UNIX) — patch  программная утилита Unix, предназначенная для переноса правок (изменений) между разными версиями текстовых файлов. Информация о правке обычно содержится в отдельном файле, называемом «правкой» или «файлом правки» (англ. patch file).… …   Википедия

  • Patch (Unix) — patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file . The patch file (also called a patch for short) is a text file that consists of a list of differences and is produced by… …   Wikipedia

  • Patch (Unix) — Patch (informatique) Pour les articles homonymes, voir Patch. Un patch (terme anglais) est une section de code que l on ajoute à un logiciel, pour y apporter des modifications : correction d un bogue, traduction, crack. Le terme officiel en… …   Wikipédia en Français

  • Patch (Unix) — Das Unix Programm patch manipuliert Quelltext anhand eines Patches. Es ist somit das Gegenstück zu dem Programm diff, das Patches erzeugt. Inhaltsverzeichnis 1 Hintergrund 2 Anwendung 3 Interoperabilität mit …   Deutsch Wikipedia

  • Patch (computing) — Software update redirects here. For the software tool by Apple Inc., see Apple Software Update. For the Unix program, see patch (Unix). For the file format, see diff. A patch is a piece of software designed to fix problems[1] with, or update a… …   Wikipedia

  • Patch — The term patch may refer to:Textiles* Embroidered patch, an embroidered design applied to clothing by organizations or individuals * Eyepatch, used in the treatment of eye disorders, or for aesthetic purposes in covering an injured or missing eye …   Wikipedia

  • Patch (Software) — Ein Patch (von engl. Flicken, in der Bedeutung von Nachbesserung, auch Bugfix) ist eine Korrekturauslieferung für Software oder Daten aus Endanwendersicht, um zum Beispiel Sicherheitslücken zu schließen, Fehler zu beheben oder bislang nicht… …   Deutsch Wikipedia

  • Patch — Das Wort Patch [pæʧ] (engl. für „Flicken“) bezeichnet Patch Clamp Technik, eine elektrophysiologische Technik zur Untersuchung von Ionenkanälen ein medizinisches Implantat; siehe Patch (Medizin) den Patch Test, einen Allergietest, siehe… …   Deutsch Wikipedia

  • UNIX — Ken Thompson und Dennis Ritchie Basisdaten Entwickler …   Deutsch Wikipedia

  • Unix — Kommandozeile (Unix Prompt) Basisdaten Entwickler Ken Thompso …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»