linux中patch补丁的文件格式和使用
文章目录
- 前言
- 一、patch补丁的文件格式
- 两个文件
- 旧文件 hello.c
- 修改后的新文件 hello_world.c
- 生成补丁文件
- 解释格式
- 二、patch补丁的使用
- 1.diff参数
- 2.patch 使用方法
- 总结
前言
在看韦东山老师的视频的时候(12期衔接视频,u-boot分析之编译体验),看到给内核打补丁这一块,老师讲的并不是特别的详细
。于是自己百度了一下下,大致总结一点点
“补丁”是一种能够将旧的文件(原始linux内核)修改成新的文件(修改后的内核)的一种不知道什么东西,就像衣服打上补丁,变成新的衣服一样。
一、patch补丁的文件格式
两个文件
旧文件 hello.c
int main()
{printf("yes\n");printf("hello");//这是注释//这也是注释
}
retuen 0;
修改后的新文件 hello_world.c
int main()
{printf("hello world");//这是注释//这也是注释
}
retuen 0;
生成补丁文件
命令:
diff -urN hello.c hello_world.c > diff.patch
生成的文件内容:
--- hello.c 1970-01-01 08:00:00.000000000 +0800
+++ hello_world.c 2017-11-03 14:19:59.249590991 +0800@@ -3,5 +3,4 @@
- printf("yes\n");
- printf("hello");
+ printf("hello world");//这是注释//这也是注释}
解释格式
--- hello.c 1970-01-01 08:00:00.000000000 +0800
+++ hello_world.c 2017-11-03 14:19:59.249590991 +0800
- - - 表示被修改的文件名 后面是时间等信息
+++ 表示修改后的文件名 后面是时间等信息
@@ -3,5 +3,4 @@
-3,5 表示: 原文件的第3行开始,一共5行有差异
+3,4 表示: 修改后的文件第3行开始,一共4行有差异
@@ @@表示一个块的开始
- printf("yes\n");
- printf("hello");
+ printf("hello world");//这是注释//这也是注释}
- 表示:修改后的文件删除这一行
+表示:修改后的文件增加这一行
空格 表示:原文件和修改后的文件都有这一行
注意:一般保留三行未修改行,便于观察。
二、patch补丁的使用
1.diff参数
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
2.patch 使用方法
使用方法自行百度,下面介绍视频中介绍的比较简单的方法:
1、cd到解压的内核文件夹中
2、使用patch p1 < …/u-boot-1.1.6_jz2440.patch
-p<剥离层级>或–strip=<剥离层级> 设置欲剥离几层路径名称
p1表示去掉第一层目录
例如u-boot-1.1.6_jz2440.patch 这个补丁中
- - - u-boot-1.1.6/board/100ask24x0/100ask24x0.c
+++ u-boot-1.1.6_jz2440_2017/board/100ask24x0/100ask24x0.c
因为已经在u-boot-1.1.6这个文件夹中,所以使用p1忽略掉上面的粗体部分的目录
总结
此文只是在自己学习过程中的小笔记,第一次这么做笔记,表达不清还请见谅,
如有错误,欢迎指出,非常感谢!
linux中patch补丁的文件格式和使用相关推荐
- matlab中patch是什么意思,Linux中patch命令起什么作用呢?
摘要: 下文讲述Linux中patch命令的功能说明,如下所示: patch命令功能: 可修复,修改,更新原始文件 patch常用于修复linux内核文件 patch命令的语法格式: patch [参 ...
- linux中patch文件的作用------
linux patch 首先介绍一下diff和patch.在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要.在99%的时间里,我们只会用到几个选项.所以必须学会这几个选项. 1.dif ...
- Linux下Patch补丁的生成与打补丁命令
之前在公司做项目的时候用到了在linux打补丁的技术(呵呵,其实也不是什么技术说大了就是一条命令),感觉这个还是挺有用的,因为很多原厂都是给出源码基础或是他们修改基础上的补丁包都我们,让我们自己打上去 ...
- Linux中patch文件的使用
因为在u-boot移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了.制作补丁可以解决这个问题. 学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者bai ...
- linux中cmd是什么文件格式,CMD 文件扩展名: 它是什么以及如何打开它?
CMD 问题的来源 打开 CMD 文件的麻烦 Microsoft Notepad 不在 尝试打开 CMD 时,你会遇到一条错误消息,例如 "%%os%% 无法打开 CMD 文件". ...
- 实训|第十一天学习一下linux中的进程,文件查找,文件压缩与IO重定向
[root@localhost~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就 ...
- linux中升级软件补丁,系统补丁升级软件(ManageEngine Patch Manager Plus)
ManageEngine Patch Manager Plus是一款能够为windows.MAC.和Linux提供补丁下载.补丁升级.补丁管理的软件,利用ManageEngine Patch Mana ...
- linux利用patch和diff命令制作文件补丁
linux利用patch和diff命令制作文件补丁 因为在 u-boot 移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了.制作补丁可以解决这个问题. 学习资料的收集比较简单,方法一类 ...
- Linux中的Diff和Patch
转自:https://www.cnblogs.com/cocowool/p/6409643.html Linux中的Diff和Patch 本文主要记录两个命令的学习情况:diff 和 patch.di ...
- linux打补丁要选择目录,Linux下patch打补丁命令实例详解
linux下patch命令使用详解---linux打补丁命令 功能说明: 修补文件. 语 法: patch [-bceEflnNRstTuvZ][-B ][-d ][-D ][-F ][-g ][-i ...
最新文章
- java 手机号隐藏_Java隐藏银行卡号或者手机号中间几位,用*号代替工具类实现HideDataUtil...
- twitter推文不收录_如何使用Twitter书签保存推文供以后使用
- Linux第三周作业
- java web响应式框架_Web开发的十佳HTML5响应式框架
- 【AI面试题】One-hot的作用,为什么不直接使用数字作为表示
- php mysql持久连接是怎样的_怎样使PHP与MySQL数据库进行持久连接
- MongoDB 数据全量备份
- Flash 原版官网下载
- 删除表记录(delete from where )
- 字节跳动内推码 春招 社招
- vivox9系统基于Android,vivo X9
- 华为手机NFC模拟加密的门禁卡详细教程
- 让每个生命带着尊严谢幕!淘宝竟有这样一家“临终关怀”网店
- java中如何将十进制转换为二进制
- 大大方方补肾,平平常常做人 - 肾虚的症状和治疗
- MRS 配套ARM内核单片机烧录工具使用说明(RISCV/ARM IDE)
- 网络编程之listen函数
- 目标转化出价多少_头条信息流广告目标转化出价(ocpc出价)常见问题讲解
- LeetCode:121(Python)—— 买卖股票的最佳时机(简单)
- 关于XRP需要了解的10件事情
热门文章
- 【亲测可行】Autodesk 卸载工具,一键完全彻底卸载删除autodesk软件专门卸载工具...
- EyouCms1.0前台GetShell漏洞复现
- Excel中计算年龄的函数
- macOS下统计pdf字数
- mp4文件如何转换为webm格式 1
- envi精度评定_利用ArcGIS+envi实现遥感分类精度评价(分层抽样法),ArcGISENVI,评估,的...
- paddle 图标注_没那么简单,手把手教你用Origin制作XRD谱图!
- html链接鼠标在悬停颜色,如何让HTML链接显示悬停样式?
- 数据库用户名和密码加密
- 【aws smart home】Aleax skill环境搭建