0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux下打patch(下)

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-30 15:37 次阅读

diff

比较两个文件的不同,然后记录下来,也就是所谓的 diff 补丁。

diff [options] from-file to-file

from-file:源文件

to-file:根据源文件修改后的文件

option:

-u 显示有差异行的前后几行(上下文), 默认是前后各 3 行, 这样, patch 中带有更多的信息

-p 显示代码所在的 c 函数的信息

-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况

-a 逐行比较文本文件

-r 比较子目录中的文件

打 patch

两个文件:需要打补丁的文件 a.c 和 patch 文件 test.patch

打补丁命令如下:

patch a.c < test.patch

实际操作如下:

图片

补充:

patch -RE < test.patch 取消 patch 对源文件的修改

patch -p1 < test.patch

p 表示跳过几级目录,0 标识不去掉为全路径,1 标识去掉第一层路径。路径信息包含了你的 Linux 源码根目录的名称,但其他人的源码根目录可能是其它名字,所以,打补丁时,要进入你的 Linux 源码根目录,并且告诉 patch 工具,请忽略补丁中的路径的第一级目录。

注意:patch -p 后面是不能带负数 的。不使用 p 参数的时候,patch 命令会 忽略 任何目录,直接使用文件。

多文件打 patch

本文是两个文件做比较,打 patch,比较简单。如果是一个工程,有多个文件修改,需要在 diff 后面增加两个属性:

-r 递归地对比一个目录和它的所有子目录(即整个目录树).

-N 如果某个文件缺少了,就当作是空文件来对比. 如果不使用本选项,当 diff 发现旧代码或者新代码缺少文件时,只简单的提示缺少文件。如果使用本选项,会将新添加的文件全新打印出来作为新增的部分。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5073

    文章

    19036

    浏览量

    303558
  • Linux
    +关注

    关注

    87

    文章

    11233

    浏览量

    208968
  • patch
    +关注

    关注

    0

    文章

    14

    浏览量

    8321
收藏 人收藏

    评论

    相关推荐

    请问ESP Wroom 32板如何在LInux使用?

    ESP Wroom 32板如何在LInux使用。 我用的系统是统信UOS,如何使用ESP32板,开发Micropython啊 简单来说就是在ESP32上刷上micropython固件,然后编写micropython代码。 在
    发表于 06-05 06:22

    何在linux进行c语言编程

    何在linux进行c语言编程
    发表于 08-20 22:55

    何在linux进行软件开发

    何在linux进行软件开发
    发表于 08-21 01:00

    何在Linux安装字体

    问题场景在用itext开发完PDF之后,有要求Apache要部署到Linux,也可能部署到windows,由于笔者在Windows开发的,字体没问题;但是
    发表于 07-04 08:14

    何在Linux驱动STN彩色LCD?

    何在Linux驱动STN彩色LCD?
    发表于 06-04 06:29

    LinuxC应用程序开发

    本文介绍了在 Linux能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 使用 C 编译器和其他 C 编程工具
    发表于 05-14 10:16 4675次阅读

    何在Linux搭建GNU Radio平台及它的应用分析

    GNU Radio是一个开源的软件无线电开发平台,可以通过图形化界面或C++、Python等文本语言快速开发软件无线电应用,本文介绍了LinuxGNU Radio平台的搭建及如何在该平台下使用NI USRP设备。
    的头像 发表于 01-02 07:56 4346次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>下</b>搭建GNU Radio平台及它的应用分析

    何在Linux如何删除大量文件的详细资料概述

    本文档的主要内容详细介绍的是如何在Linux删除大量文件的过程详细资料概述免费下载。
    发表于 11-14 17:10 7次下载

    何在Win安装linux的虚拟机详细安装方法资料概述

    本文档的主要内容详细介绍的是如何在Win7安装linux的虚拟机详细安装方法资料概述免费下载。
    发表于 11-28 15:03 3次下载

    LINUX系统教程之如何在Linux系统进行编程

    本文档的主要内容详细介绍的是LINUX系统教程之如何在Linux系统进行编程主要内容包括了:程序开发过程 ,Linux编程环境和开发工具
    发表于 12-18 19:09 9次下载

    何在Linux环境搭建51单片机的开发烧写环境

    本文档的主要内容详细介绍的是如何在Linux环境搭建51单片机的开发烧写环境。
    发表于 08-15 17:32 2次下载
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>环境<b class='flag-5'>下</b>搭建51单片机的开发烧写环境

    何在Linux环境实现Python环境的搭建

    本文档的主要内容详细介绍的是如何在Linux环境实现Python环境的搭建。
    发表于 08-24 12:12 14次下载
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>环境<b class='flag-5'>下</b>实现Python环境的搭建

    何在Linux系统开启wifi

    大家好,我是ST。今天主要和大家聊一聊如何在Linux系统开启wifi。
    的头像 发表于 10-08 09:21 4481次阅读

    Linux如何安装和卸载rpm工具

    在Windows系统安装软件很简单,只要双击后缀为.exe的文件,然后根据提示连续单击“下一步”按钮即可。然而在Linux系统安装软件就没那么容易了,因为我们不是在图形界面。所以
    的头像 发表于 11-06 22:07 8298次阅读

    何在Linuxpatch(上)

    在项目中,如果和其他人一起维护一个项目,有时候别人修改了一些代码,更换 .c 文件也很麻烦,这时就需要用到 patch 了,别人只要发一个 patch ,你打上即可。 patch :补丁,用来显示
    的头像 发表于 07-30 15:34 1106次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>下</b><b class='flag-5'>打</b><b class='flag-5'>patch</b>(上)