Commandes Linux : patch

PATCH

Installé avec le paquet patch
Voir aussi : diff

 

Afficher la version de la commande patch

patch --version

ou

apt-cache policy patch

 

Mode verbeux

patch --verbose [...]

 

Mode simulation

patch --dry-run originalfilename patchfilename

L’application du patch est testée mais non appliquée effectivement.

 

Patcher un fichier

patch originalfilename patchfilename

Ceci a pour conséquence d’appliquer le différentiel au fichier original et de le rendre identique à sa version modifiée.
ex :

# diff -q file1.txt file2.txt
Les fichiers file1.txt et file2.txt sont différents
# diff file1.txt file2.txt > patch.txt
# patch file1.txt patch.txt
patching file file1.txt
# diff -s file1.txt file2.txt
Les fichiers file1.txt et file2.txt sont identiques

 

Patcher un fichier en sauvegardant l’original (mode backup)

patch -b originalfilename patchfilename

Ceci a pour conséquence d’appliquer le différentiel au fichier original et de le rendre identique à sa version modifiée.
Le fichier original est sauvegardé sous le nom orinalfilename.orig dans le répertoire d’origine du fichier.

patch -b -z .old originalfilename patchfilename

Le fichier original est sauvegardé sous le nom orinalfilename.old dans le répertoire d’origine du fichier.

patch -B backupdestination -b originalfilename patchfilename

Le fichier original est sauvegardé sous son nom original dans le répertoire backupdestination.
Sa version patchée porte également le nom original du fichier mais à son emplacement d’origine.

 

Spécifier depuis quel répertoire patcher

patch -d workingdirectory originalfilename patchfilename

L’option -d permet de se déplacer dans le répertoire workingdirectory, d’y patcher le fichier originalfilename à partir du patch patchfilename, puis de retourner dans le répertoire initial.
ex :

# pwd
/etc
# patch -d /home/adminsys/ file1.txt patch.txt
patching file file1.txt
# pwd
/etc

Ci-dessus, on est situé dans le répertoire /etc mais on patche un fichier situé dans /home/adminsys avec un patch situé également dans /home/adminsys.

 

Spécifier le nom du fichier patché de sortie

patch originalfilename patchfilename -o modiffilename

Le fichier originalfilename n’est pas modifié, le fichier modifié à partir du patch patchfilename se nomme modiffilename.

 

Patcher un fichier modifié en mode reverse (mode rollback)

patch -R modiffilename patchfilename

L’application du patch sur le fichier modifié aura pour effet de le rendre identique au fichier original, donc avant modification.

# patch -R file2.txt patch.txt
patching file file2.txt
Fermer le menu
%d blogueurs aiment cette page :