linux 通过打补丁的方式更新文件

原理:

使用 diff 命令把修改前和修改后两个文件的差异记录在 patch 文件中,然后用 patch 命令把 patch 文件打到旧文件中得到新文件。
可以用于更新终端设备的文件,或者同步文件的修改内容给其他用户。

制作补丁

制作文件的补丁:

$ diff -au old.file new.file > test.patch

old.file 修改前的文件,new.file 修改后的文件。
test.patch 补丁文件,记录了 old.file 文件和 new.file 文件的差异。

制作目录的补丁

$ diff -Naur old/ new/ > test1.patch

old 修改前的目录,new 修改后的目录。

命令选项说明:

-N 			不存在的文件以空文件方式处理
-a 			所有文件都以文本方式处理
-u [n] 		输出(默认为 3 行)一致的上下文(差异前后相同的行,方便定义差异的位置)
-r 			连同所有子目录一起比较(递归处理)

更多的选项可以通过命令 diff --help 查询。

打补丁

更新文件:
把 test.patch 文件拷贝到 old.file 文件同级目录,执行命令:

$ patch -p0 < test.patch

执行完命令后就可以把 old.file 文件更新成 new.file 文件。

更新目录:
把 test1.patch 文件拷贝到 old 目录的同级目录,执行命令:

$ patch -p0 < test.patch

执行完命令后就可以把 old 目录的所有文件更新到和 new 目录的文件一致。

命令选项说明:

-p NUM 		从文件名中去除 NUM 前导部分(同级目录 NUM 填 0 就可以)

更多的选项可以通过命令 patch --help 查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值