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.