patch 和diff指令的用法:
这两个指令的作用是相反的,diff是用来生成补丁包的,而patch是用来打补丁的。
1. diff指令用法
diff -c a b > c.patch
一般来说这是diff的常用用法,-c的作用是在补丁包中生成改动的上下文和行数,以及a b所在的目录。
2. patch 用法
① patch 指令中指出被打补丁的文件,比如要给a 打补丁
patch a c.patch
② patch指令中没有给出被打补丁的文件,只是有patch:
patch -p0 < e.patch
这里重点说一下参数p0的作用,补丁文件中标出了被打补丁的具体目录,比如说实在a/b/c/下。
那么如果补丁包实在和a同一级目录下,那么我们就希望补丁包找到目录a,然后再a下顺序找到b/c/,此时我们的参数应该用p0
但是如果补丁包是在和b同一级目录下,那么我们就要补丁包直接从b开始找,然后找到c下的墓边文件。此时应该用参数p1
所以说p0 代表完全按照补丁包中的目录,往下找目标文件
p1代表忽略补丁包中标志的目录中的第一级目录,而是直接从第二级目录开始找
③ 如果补丁包打好之后想会退回原来的怎么办:此时应该加上参数R
比如上面的两条指令 :
patch -R a c.patch