====== DIFF - PATCH - Autopatch Sourcefiles ====== 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 ====== DIFF erstellen ====== 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 ====== PATCH - anwenden ====== 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. ====== TAGS ====== * Diff * Difffiles * Patch * Linux * automatich patchen * alle Dateien patchen * Sourcefiles patchen * patch script