首頁 > 文字處理與搜尋 > patch

patch: 將變更(補丁)應用於檔案

patch 命令用於使用由 'diff' 命令生成的補丁檔案(.patch)將變更應用於原始檔案。透過此工具,您可以有效地修改原始碼或更新設定檔。

概述

patch 是一個實用程式,它讀取由 diff 命令創建的輸出檔案(也稱為補丁檔案),並將變更應用於原始檔案。此補丁檔案通常按行記錄了哪些內容被添加、刪除或修改。patch 命令根據這些資訊修改原始檔案。在版本控制系統(如 CVS、Git 等)出現之前,它是共享程式碼變更的主要方式。

主要特點

patch 命令的主要特點如下:

  • 使用 diff 命令生成的補丁檔案。
  • 廣泛用於原始碼更新、設定檔變更等。
  • 即使原始檔案與補丁檔案不完全匹配,也能檢測並應用部分變更。
  • 還提供還原(reverse)變更內容的功能。

主要選項

我們根據目的將常用的 patch 命令選項分組。

1) 패치 적용 및 취소

2) 도움말

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`patch` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

透過 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` 生成的統一(unified)格式是最常見的補丁格式。使用此格式可提高補丁應用的成功率。
  • `-p` 選項對於忽略補丁檔案中的路徑資訊非常重要。您應該檢查補丁檔案的標頭以指定正確的級別。例如,如果路徑為 `a/src/file.c`,使用 `-p1` 將補丁應用於 `src/file.c`。
  • 如果補丁應用失敗,將會生成一個副檔名為 `.rej` 的檔案。此檔案包含補丁失敗的部分,您可以參考它進行手動修改。
  • 在應用補丁之前,建議備份原始檔案。

相關命令

功能上相似或經常一起使用的命令。


相同類別命令