accueil > Traitement et recherche de texte > patch

patch: Appliquer des modifications (patchs) à des fichiers

La commande 'patch' est utilisée pour appliquer des modifications à des fichiers originaux en utilisant un fichier de patch (.patch) généré par la commande 'diff'. Cet outil permet de modifier efficacement le code source ou de mettre à jour des fichiers de configuration.

Aperçu

patch est un utilitaire qui lit un fichier de sortie créé par la commande diff (également appelé fichier de patch) et applique les modifications au fichier original. Ce fichier de patch enregistre généralement les ajouts, suppressions ou modifications ligne par ligne. La commande patch modifie le fichier original en se basant sur ces informations. Avant l'avènement des systèmes de contrôle de version (CVS, Git, etc.), c'était le principal moyen de partager les modifications de code.

Caractéristiques principales

Les principales caractéristiques de la commande patch sont les suivantes :

  • Utilise des fichiers de patch générés par la commande diff.
  • Largement utilisé pour les mises à jour de code source, les modifications de fichiers de configuration, etc.
  • Peut détecter et appliquer certaines modifications même si le fichier original ne correspond pas exactement au fichier de patch.
  • Fournit également une fonction pour annuler les modifications (reverse).

Options principales

Les options fréquemment utilisées de la commande patch sont regroupées par objectif.

1) Application et annulation de patch

2) Aide

Commande générée :

Essayez de combiner les commandes.

Description:

`patch` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Apprenez les fonctionnalités de la commande patch à travers divers exemples d'utilisation.

Appliquer un fichier de patch

patch -p1 -i my_changes.patch

Applique les modifications au fichier original en utilisant le fichier my_changes.patch. L'option `-p1` ignore le premier chemin de répertoire du fichier de patch.

Annuler les modifications

patch -p1 -R -i my_changes.patch

Annule le contenu du patch appliqué à l'aide de l'option `-R`. Utilisé pour restaurer le fichier original à partir du fichier de patch.

Appliquer un patch via un pipe

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

Transmet directement la sortie de la commande diff à la commande patch via un pipe (`|`) pour appliquer le patch sans créer de fichier de patch.

Prévisualiser l'application du patch

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

Utilise l'option `--dry-run` pour prévisualiser les changements qui se produiraient lors de l'application du patch.

Installation

patch est inclus par défaut dans la plupart des distributions Linux. Si le paquet n'est pas présent, vous pouvez installer le paquet `patch` ou `diffutils` comme suit :

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

Astuces et précautions

Voici quelques points à considérer lors de l'utilisation de la commande patch.

Astuces

  • Le format unifié (unified) généré par `diff -u` est le format de patch le plus courant. L'utilisation de ce format augmente le taux de réussite de l'application du patch.
  • L'option `-p` est très importante pour ignorer les informations de chemin dans le fichier de patch. Vous devez vérifier l'en-tête du fichier de patch pour spécifier le bon niveau. Par exemple, pour un chemin comme `a/src/file.c`, l'utilisation de `-p1` appliquera le patch à `src/file.c`.
  • Si l'application du patch échoue, un fichier avec l'extension `.rej` est créé. Ce fichier contient les parties du patch qui ont échoué et peut être consulté lors de la correction manuelle.
  • Il est recommandé de faire une sauvegarde du fichier original avant d'appliquer un patch.

commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.


Commandes de la même catégorie