# Fichier original
krusaf@ares:/home/krusaf/tmp $ echo "Fichier original" > fichier.ori
# Fichier une fois patche
krusaf@ares:/home/krusaf/tmp $ echo "Fichier patche" > fichier.c
# Creation du patch via la commande diff
krusaf@ares:/home/krusaf/tmp $ diff -u fichier.ori  fichier.c  > fichier.patch
# simulation pour l'application du patch
krusaf@ares:/home/krusaf/tmp $ rm fichier.c
krusaf@ares:/home/krusaf/tmp $ mv fichier.ori fichier.c
krusaf@ares:/home/krusaf/tmp $ patch -p0 < fichier.patch
patching file fichier.c
krusaf@ares:/home/krusaf/tmp $ cat fichier.c
Fichier patche

Et pour une arborescences, il suffit de rajouter l'option -r à la commande diff :

krusaf@ares:/home/krusaf/tmp $ mkdir sources
krusaf@ares:/home/krusaf/tmp $ cd sources/
krusaf@ares:/home/krusaf/tmp/sources $ echo "original" > 1
krusaf@ares:/home/krusaf/tmp/sources $ cp 1 2
krusaf@ares:/home/krusaf/tmp/sources $ ll
total 8
-rw-rw----  1 krusaf sgc 9 déc 22 12:24 1
-rw-rw----  1 krusaf sgc 9 déc 22 12:24 2
krusaf@ares:/home/krusaf/tmp/sources $ cd ..
krusaf@ares:/home/krusaf/tmp $ mv sources/ sources.originales
krusaf@ares:/home/krusaf/tmp $ cp -rfp sources.originales/ sources
krusaf@ares:/home/krusaf/tmp $ cd sources
krusaf@ares:/home/krusaf/tmp/sources $ echo "patche" > 1
krusaf@ares:/home/krusaf/tmp/sources $ cp 1 2
krusaf@ares:/home/krusaf/tmp/sources $ cd ..
# Creation du patch
krusaf@ares:/home/krusaf/tmp $ diff -ru sources.originales/ sources > patch
# Simulation d'application du patch
krusaf@ares:/home/krusaf/tmp $ rm -rf sources
krusaf@ares:/home/krusaf/tmp $ mv sources.originales/ sources
krusaf@ares:/home/krusaf/tmp $ patch -p0 < patch
patching file sources/1
patching file sources/2
krusaf@ares:/home/krusaf/tmp $ cat sources/*
patche
patche