Startseite > Textverarbeitung & Suche > patch

patch: Dateiänderungen (Patches) anwenden

Der Befehl 'patch' wird verwendet, um Änderungen auf eine Originaldatei anzuwenden, indem er eine mit dem 'diff'-Befehl erstellte Patch-Datei (.patch) verwendet. Dieses Tool ermöglicht eine effiziente Durchführung von Aufgaben wie dem Ändern von Quellcode oder dem Aktualisieren von Konfigurationsdateien.

Übersicht

patch ist ein Dienstprogramm, das die Ausgabedatei (auch Patch-Datei genannt), die mit dem diff-Befehl erstellt wurde, liest und Änderungen auf die Originaldatei anwendet. Diese Patch-Datei zeichnet in der Regel zeilenweise auf, welche Inhalte hinzugefügt, gelöscht oder geändert wurden. Der patch-Befehl ändert die Originaldatei basierend auf diesen Informationen. Vor dem Aufkommen von Versionskontrollsystemen (wie CVS, Git usw.) war dies die primäre Methode zum Teilen von Codeänderungen.

Hauptmerkmale

Die Hauptmerkmale des patch-Befehls sind:

  • Verwendet Patch-Dateien, die mit dem diff-Befehl erstellt wurden.
  • Weit verbreitet für Quellcode-Updates, Konfigurationsdateien und mehr.
  • Kann einige Änderungen erkennen und anwenden, auch wenn die Originaldatei nicht exakt mit der Patch-Datei übereinstimmt.
  • Bietet auch eine Funktion zum Rückgängigmachen (reverse) von Änderungen.

Wichtige Optionen

Häufig verwendete Optionen des patch-Befehls, gruppiert nach Zweck.

1) Patch anwenden und rückgängig machen

2) Hilfe

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`patch` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Lernen Sie die Funktionen des patch-Befehls durch verschiedene Anwendungsbeispiele kennen.

Patch-Datei anwenden

patch -p1 -i my_changes.patch

Wendet Änderungen auf die Originaldatei an, indem die Datei my_changes.patch verwendet wird. Die Option `-p1` ignoriert den ersten Verzeichnispfad in der Patch-Datei.

Änderungen rückgängig machen

patch -p1 -R -i my_changes.patch

Macht die angewendeten Patch-Inhalte mit der Option `-R` rückgängig. Wird verwendet, um die Patch-Datei in ihren ursprünglichen Zustand zurückzusetzen.

Patch über Pipe anwenden

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

Leitet die Ausgabe des diff-Befehls direkt über eine Pipe (`|`) an den patch-Befehl weiter, um den Patch direkt anzuwenden, ohne eine Patch-Datei zu erstellen.

Vorschau der Patch-Anwendung

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

Verwenden Sie die Option `--dry-run`, um eine Vorschau der Änderungen zu erhalten, die bei der Anwendung des Patches auftreten würden.

Installation

patch ist in den meisten Linux-Distributionen standardmäßig enthalten. Falls das Paket nicht vorhanden ist, können Sie das `patch`- oder `diffutils`-Paket wie folgt installieren:

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

Tipps & Hinweise

Wichtige Punkte bei der Verwendung des patch-Befehls.

Tipps

  • Das mit `diff -u` erzeugte vereinheitlichte (unified) Format ist das gängigste Patch-Format. Die Verwendung dieses Formats erhöht die Erfolgsrate der Patch-Anwendung.
  • Die Option `-p` ist sehr wichtig, um Pfadinformationen in der Patch-Datei zu ignorieren. Sie müssen die Kopfzeile der Patch-Datei überprüfen, um die richtige Ebene anzugeben. Wenn der Pfad beispielsweise `a/src/file.c` lautet, wird bei Verwendung von `-p1` der Patch auf `src/file.c` angewendet.
  • Wenn die Patch-Anwendung fehlschlägt, wird eine Datei mit der Erweiterung `.rej` erstellt. Diese Datei enthält die fehlgeschlagenen Teile des Patches und kann als Referenz für manuelle Korrekturen verwendet werden.
  • Es wird empfohlen, vor dem Anwenden eines Patches eine Sicherungskopie der Originaldatei zu erstellen.

Verwandte Befehle

Funktional ähnliche oder häufig zusammen verwendete Befehle.


Gleiche Kategorie Befehle