patch [options] [originalfile [patchfile]]
通常这样用
patch -pnum <patchfile      
 
-pnum or --strip=num
从补丁文件中找到的每个名字里面去掉包含最少num个前导下划线的前缀。一个或多个相邻的下划线被认为是一个。这样的话,如果你放置文件的位置和发布补丁的人是不一样的,就可以控制怎样对待在补丁文件里找到的文件名。举例来说,假如补丁文件里面的文件名是
    /u/howard/src/blurfl/blurfl.c
设置-p0将使用整个不做改动的文件名,-p1使用
    u/howard/src/blurfl/blurfl.c
即,去掉了前面的下划线,-p4使用
    blurfl/blurfl.c
如果不指定-p,则只使用blurfl.c。结尾的任何文件将在当前路径或由-d指定的路径下寻找。
 
例子:
内核源代码:
/usr/src/linux-2.6.31/
补丁:
/usr/src/patch-2.6.31
命令:
cd linux-2.6.31/
patch -p1 < ../patch-2.6.31
 
 
diff [OPTION]... FILES
选项:
-N –new-file
认为不存在的文件是空的
-u -U NUM --unified[=NUM]
相同的部分显示NUM(默认3)行
-r --recursive
递归子目录
生成补丁文件:
diff –Nur /path/to/original/kernel /path/to/your/kernel > changes.patch