PF = Patchfiles
Es handelt sich hier um ein Script, welches bei Debian/GNU auf dessen PF angewendet werden kann. Die PF müssen die Endung .diff haben. Das Script macht keine Fehlerbehandlung.
#! /bin/bash SRC=$1 DST=$2 _datei=`find $SRC -type f` _dir=`find $SRC -type d` CNT=${#SRC} PATCHES=0 function cut_dir () { H=$1 CNT_H=${#H} DIR=${H:$CNT:$CNT_H} } function cut_file() { cut_dir $1 FILE=$DIR CNT_H=${#FILE} SFX=${FILE:$CNT_H-5:5} FILE=${FILE:0:$CNT_H-5} } for DIR in $_dir ; do cut_dir $DIR if [ ! -d $DST$DIR ] ; then echo create dst-directory structure: $DST$DIR mkdir -p $DST$DIR fi done echo beginn patch files for FILE in $_datei ; do cut_file $FILE patch $DST$FILE < $FILE$SFX let PATCHES=$PATCHES+1 done echo $PATCHES files patched exit 0
Beispiel:
#patcher /path/to/diffdir /path/to/destdir
Will man selber einen DIFF erstellen, so nutzt man das Programm diff
#diff -uN alte_datei neue_datei > /path/to/diff_datei.diff
Man erhält eine Datei, mit den nötigen Informationen
Um ein DIFF auf eine Datei anzuwenden … einfach das Programm patch installieren.
#patch /path/to/alte_datei < /path/to/neue_datei.diff
Nach diesem Aufruf erthält die /path/to/alte_datei alle Änderungen.