Startpagina > Tekstverwerking en zoeken > patch

patch: Wijzigingen (patches) toepassen op bestanden

Het 'patch'-commando wordt gebruikt om wijzigingen toe te passen op originele bestanden met behulp van patchbestanden (.patch) die zijn gegenereerd door het 'diff'-commando. Met deze tool kunt u efficiënt broncode wijzigen of configuratiebestanden bijwerken.

Overzicht

patch is een hulpprogramma dat uitvoerbestanden (ook wel patchbestanden genoemd) die door het diff-commando zijn gemaakt, leest en wijzigingen toepast op de originele bestanden. Deze patchbestanden leggen doorgaans regel voor regel vast welke inhoud is toegevoegd, verwijderd of gewijzigd. Het patch-commando past het originele bestand aan op basis van deze informatie. Voordat versiebeheersystemen (zoals CVS, Git) verschenen, was dit de belangrijkste manier om codewijzigingen te delen.

Belangrijkste kenmerken

De belangrijkste kenmerken van het patch-commando zijn:

  • Maakt gebruik van patchbestanden die zijn gegenereerd door het diff-commando.
  • Wordt veel gebruikt voor het bijwerken van broncode, het wijzigen van configuratiebestanden, enz.
  • Kan sommige wijzigingen detecteren en toepassen, zelfs als het originele bestand niet exact overeenkomt met het patchbestand.
  • Biedt ook de mogelijkheid om wijzigingen ongedaan te maken (reverse).

Belangrijkste opties

Veelgebruikte opties van het patch-commando zijn gegroepeerd op doel.

1) Patch toepassen en ongedaan maken

2) Help

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`patch` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Leer de functionaliteit van het patch-commando aan de hand van verschillende gebruiksvoorbeelden.

Patchbestand toepassen

patch -p1 -i my_changes.patch

Past wijzigingen toe op het originele bestand met behulp van het `my_changes.patch` bestand. De `-p1` optie negeert het eerste directorypad van het patchbestand.

Wijzigingen ongedaan maken

patch -p1 -R -i my_changes.patch

Zet de toegepaste patchinhoud terug naar de originele staat met behulp van de `-R` optie. Wordt gebruikt om een gepatcht bestand terug te zetten naar de originele staat.

Patch toepassen via pipe

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

Geeft de uitvoer van het `diff`-commando direct door via een pipe (`|`) aan het `patch`-commando om de patch direct toe te passen zonder een patchbestand te maken.

Voorbeeld van patchtoepassing

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

Gebruik de `--dry-run` optie om vooraf te controleren welke wijzigingen zullen optreden bij het toepassen van de patch.

Installatie

Patch is standaard opgenomen in de meeste Linux-distributies. Als het pakket niet aanwezig is, kunt u het `patch`- of `diffutils`-pakket als volgt installeren:

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

Tips & Aandachtspunten

Hier zijn enkele aandachtspunten bij het gebruik van het patch-commando.

Tips

  • Het verenigde (unified) formaat, gegenereerd met `diff -u`, is het meest voorkomende patchformaat. Het gebruik van dit formaat verhoogt de slagingskans van het toepassen van de patch.
  • De optie `-p` is cruciaal voor het negeren van padinformatie in het patchbestand. Controleer de header van het patchbestand om het juiste niveau te specificeren. Bijvoorbeeld, voor een pad zoals `a/src/file.c`, gebruik `-p1` om de patch toe te passen op `src/file.c`.
  • Als het toepassen van de patch mislukt, wordt een bestand met de extensie `.rej` aangemaakt. Dit bestand bevat de mislukte delen van de patch en kan als referentie dienen bij handmatige correcties.
  • Het is raadzaam om een back-up van het originele bestand te maken voordat u een patch toepast.

gerelateerde commando's

Functional vergelijkbare of vaak samen gebruikte commando's.


Hétzelfde categoriecommando