美文网首页运维的日记
diff和patch配合打补丁

diff和patch配合打补丁

作者: 陈公子ks | 来源:发表于2020-03-23 19:03 被阅读0次

一般程序都会出现漏洞,目前主要使用diff和patch对程序进行打补丁。
在Linux中,我们使用diff可以生成补丁文件,然后patch命令对其将进行打补丁。
为了做实验,我们在一个目录下创建两个脚本

# vim test1.sh
   #!/bin/bash 
   echo "hello world"
# vim test2.sh
   #!/bin/bash
   echo "hello the world"
   echo "test file"
diff -u test1.sh test2.sh

diff告诉我们,怎么修改成第一文件得到第二个文件。


diff命令常用选项:

-u 输出统一内容的头部信息(打补丁使用),计算机知道是哪个文件需要修改

-r 递归对比目录中的所有资源(可以对比目录)

-a 所有文件视为文本(包括二进制程序)

-N 无文件视为空文件(空文件怎么变成第二个文件)

-N选项备注说明:

A目录下没有txt文件,B目录下有txt文件

diff比较两个目录时,默认会提示txt仅在B目录有(无法对比差异,修复文件)

diff比较时使用N选项,则diff会拿B下的txt与A下的空文件对比,补丁信息会明确说明如何从空文件修改后变成txt文件,打补丁即可成功!


diff -u test1.sh test2.sh > test.sh

生成补丁文件

patch -p0 < test.sh

使用patch命令为代码打补丁

patch命令选项说明:
patch -pnum(其中num为数字,指定删除补丁文件中多少层路径前缀)
如原始路径为/u/howard/src/blurfl/blurfl.c
-p0 则整个路径不变
-p1 则修改路径为u/howard/src/blurfl/blurfl.c
-p4 则修改路径为blurfl/blurfl.c
-R(reverse)反向修复,-E修复后如果文件为空,则删除该文件

相关文章

  • diff和patch配合打补丁

    一般程序都会出现漏洞,目前主要使用diff和patch对程序进行打补丁。在Linux中,我们使用diff可以生成补...

  • 读懂patch

    此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作。 基本命令语法: patch [-R] {-p(...

  • Git 打补丁-- patch 和 diff 的使用(详细)

    一、 patch 和diff 的区别 Git 提供了两种补丁方案,一是用git diff生成的UNIX标准补丁.d...

  • RN差量更新

    目前常见的diff工具有bsdiff和google-diff-match-patch。google-diff-ma...

  • diff命令和patch命令的使用

    diff命令和patch命令的使用 diff命令的使用方法 diff 命令是 linux上非常重要的工具,用于比较...

  • 教你快速简单打补丁

    一、当前修改差异文件打patch git diff > ***.patch 二、某次commit 打patch g...

  • 为文件/文件夹打补丁

    主要的命令是diff和patch diff diff可以比较两个东西,并可同时记录下二者的区别。制作补丁时的一般用...

  • git打补丁(patch)

    参考一参考二

  • patch

    patch,是打补丁的命令 patch -p0 (“p”指的是路径,后面的数字表示去掉路径的第几部分。"0"...

  • 2018-10-13随笔

      最近所学: Android Studio使用Apply patch打补丁。 Fragment的实例以成员变量形...

网友评论

    本文标题:diff和patch配合打补丁

    本文链接:https://www.haomeiwen.com/subject/vbfgyhtx.html