1 / 5
文档名称:

使用diff同patch工具.doc

格式:doc   大小:17KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

使用diff同patch工具.doc

上传人:wz_198614 2017/11/2 文件大小:17 KB

下载得到文件列表

使用diff同patch工具.doc

相关文档

文档介绍

文档介绍:使用diff同patch工具
在给客户提供技术支持工作的时候,常会遇到需要修改各种不同的配置文件。过去的方式,通常是描述修改的地方,然后由用户自行修改,或使用sed等工具写一个脚本给用户运行。但这样会带来一些问题:如果用户不会vi,或者他理解错、找错配置的
位置,这样带来的问题可能更难预计。
此时,或许可以试试我的方法,借用diff和patch直接帮用户修改,然后把生成的“patch补丁”发给他运行即可。这样工作量小,而且也能控制修改后的结果,当然也方便Email
发送咯。
一、介绍
diff 和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。diff比较两个文件或文件集合的差异,并记录下来,生成一个差异文件,这也是我们常说的补丁文件。补丁文件能运用于原来的两个集合之一,从而得到另一
个集合。
举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于 A
-B = C ,那么patch的过程就是B+C = A 或A-C =B。
因此我们只要能得到A, B, C三个文件中的任何两个,就能用diff和patch这对工具生
成另外一个文件。
二、使用
实例说明是最快的方法,假设现在有a、b两个文件,内容如下:
引用
$ cat a
123456
$ cat b
abcdef
其中a是用户发给我的文件,而b是我修改后的文件。
那我们可以这样生成c文件:
$ diff -Naur a b > c
然后,可以把c文件发给用户,运行如下的命令即可自行修改a->b:
$ patch -p0 a < c
patching file a
结果如下:
$ cat a
abcdef
三、恢复
上面的操作很简单吧。那如果万一a修改有误,如何恢复呢?通过前面的说明可以知
道,通过c文件是可以直接恢复的:
引用
$ patch -R -p0 a < c
patching file a
$ cat a
123456
可以看到使用diff和patch是比较安全的,请注意-R选项哦!
另外,diff生成的c文件是有记录文件名的,在不指定原文件的情况下,可以自动识别:
$ patch -p0 < c
patching file a
反了会这样:
$ patch -p0 b < c
patching file b
Reversed (or previously applied) patch detected! Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file
所以,一般是不会搞错新旧文件的。
四、路径问题