Linux文件打补丁

(最强的武器就是打补丁 ^ ^)

假如有1.c和2.c
Linux文件打补丁_第1张图片
其中2.c为高版本文件,1.c为低版本文件
我们想要用2.c文件替换掉1.c文件中内容
可以用命令diff 1.c 2.c > test.patch
来生成补丁包
Linux文件打补丁_第2张图片
其中patch文件中 '<'代表的是后面要删除的内容,而 '>'代表的是后面要增加的内容。
然后是"1,3c1,3"的意思

为了方便理解我再生成一个补丁包
Linux文件打补丁_第3张图片对比一下"2c2,3",可以发现这句话的意思就是删除第一个文件(旧版本)的第2行,在后面增加另一个文件(新版本)的第2到3行。所以上面的"1,3c1,3"代表的是删除第一个文件的第1到3行,在后面增加第二个文件的第1到3行咯。

接下来是打补丁的操作
用命令 patch -p0 1.c(想被打的文件) < test.patch(补丁)
Linux文件打补丁_第4张图片
Linux文件打补丁_第5张图片
看看那结果是不是和预期一样捏。

另外还有一个反向打补丁的操作(反打的意思吗哈哈)
patch -Rp0 1.c < test.patch (R means : reverse)

Linux文件打补丁_第6张图片
在这里插入图片描述
我的理解是还原打补丁前的文件,将< >这两个符号方向调换,那不就是负负等正吗。

我觉得这打补丁用在大量需要修改文件的项目中有奇效啊。

你可能感兴趣的:(Linux)