先用diff比较两个目录,在patch的时候,如果要打补丁的目录和diff时的目录放的地方不一样,它会报找不到文件的错,此时需要用到-p的参数,-p后面跟一个数字作为参数,表示忽略diff文件中第几个/前的东西。如-p5表示忽略第5个/前的东西。比如在diff的时候,比较的是a/foo和b/foo两个文件夹,那么输出的diff文件中,文件名是a/foo/XXXX,此时如果要给c/foo下的一个东西打补丁,那么直接打就不行了。此时应该到c目录中,然后用patch -p1命令来打,嗯。
外一则,如果被打补丁的目录中有些文件不存在了,patch会停下来问你咋办,如果在命令行中加上-t的参数,那么它就不会停而是直接跳过,开始打下一个文件的补丁了。