linux生成目录间补丁,linux之打补丁
linux内核打补丁
将帮助文件另存为的方法:
BingGongtekiMacBook-Pro:~ binggong$ man cp |col -b >cp.man
1、比较文件的区别,创建补丁:diff
功能就是比较两个文件或目录的不同,并记录下来。
语法:
diff [option] sourcefile(旧) objectsfile(新)
-c:文件比较
-r:递归选项,将两个不同版本源代码目录中所有对应文件进行一次比较,包括子目录。
-N:该选项确保补丁文件将正确的处理已经创建和删除文件的情况,就是比较一个有而另一个没有的文件。
-u:放在一起比较,统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
-b:忽略空格造成的不同
-B:忽略空行造成的不同
-I:忽略大小写的变化
-q:概要显示比较的文件有无差别,而不做详细显示。
-x或者—exclude :不比较指定的文件或者目录。
-X或者—exclude-from:指定不比较的文件类型,使用exclude的话,可以将类型写在文件中,在进行指定。
打补丁:diff oldfile newfile >1.patch
2、打补丁:patch
文件打补丁
patch file1<1.patch
还原到源文件
patch -R file<1.patch
BingGongtekiMacBook-Pro:~ binggong$ patch 2.txt<1.patch
patching file 2.txt
Reversed (or previously applied) patch detected! Assume -R? [n] y
BingGongtekiMacBook-Pro:~ binggong$ more 2.txt
1111111
2222222
BingGongtekiMacBook-Pro:~ binggong$ patch -R 2.txt<1.patch
patching file 2.txt
Unreversed patch detected! Ignore -R? [n] y
BingGongtekiMacBook-Pro:~ binggong$ more 2.txt
1111111
3333333
就是利用diff制作的补丁来实现源文件夹和目标文件夹的转换。
-p0:选项是要从当前目录查找目的文件或文件夹
-p1:忽略第一层目录,从当前目录开始查找。
-E:表示如果发现了空文件,就删除他。
-R:说明在补丁文件中“新”文件和“旧”文件现在调换位置,也就是还原会老版本。
补丁文件说明:
补丁头分别由—和+++开头的两行,用来表示要打补丁的文件,---表示旧文件,+++表示新文件。
BingGongtekiMacBook-Pro:~ binggong$ more 1.patch
Binary files patch/.DS_Store and snap/.DS_Store differ
diff -ruN patch/ConsoleKit/seats.d/00-primary.seat snap/ConsoleKit/seats.d/00-primary.seat
--- patch/ConsoleKit/seats.d/00-primary.seat 1970-01-01 08:00:00.000000000 +0800
+++ snap/ConsoleKit/seats.d/00-primary.seat 2016-08-08 19:03:53.000000000 +0800
一个补丁文件中可能包含多个—和+++,每一节用来打一个补丁,所以一个补丁文件中包含多个补丁块。
块是补丁要修改的地方,通常以@@开头到另一个补丁头结束。
块的缩进,表示缩进的列要进行增加或删除的操作。
+表示这一行是要加上去的。
-表示这一行是要删除的。
3、实验
进入需要打补丁的文件目录
cd patch_dir
3.1创建补丁文件
查看目录之间的差异:
BingGongtekiMacBook-Pro:~ binggong$ diff -ruN patch/ snap/ >1.patch
打补丁(文件夹)
旧文件夹和新文件夹比较,删除新文件夹中没有而旧文件夹中有的文件,更新新文件夹中文件的内容到旧文件夹中。
打补丁前的情况
BingGongtekiMacBook-Pro:~ binggong$ ls patch/ snap/
patch/:
1112.txt22222222
snap/:
1.txt222
111未命名文件夹
打补丁
ngGongtekiMacBook-Pro:~ binggong$ diff -ruN snap/ patch/ >snap-to-patch.patch
BingGongtekiMacBook-Pro:~ binggong$ cp snap-to-patch.patch snap/
BingGongtekiMacBook-Pro:~ binggong$ cd snap
BingGongtekiMacBook-Pro:snap binggong$ patch -p1
patching file 1.txt
patching file 111
patching file 2.txt
patching file 222
patching file 22222/222222
patching file 未命名文件夹/1的副本.txt
打补丁后
BingGongtekiMacBook-Pro:~ binggong$ ls snap/ patch/
patch/:
1112.txt22222222
snap/:
111222snap-to-patch.patch
2.txt22222未命名文件夹
BingGongtekiMacBook-Pro:~ binggong$
-p:忽略补丁路径的“/”数目。建议直接将补丁文件放在需要打补丁到的文件里,方便打补丁。实际上在实际应用中,只要有源文件(夹)旧的和补丁文件就可以打补丁了,而不必要有目的文件。
patch oldfile <1.patch
还原会未打补丁状态
patch -R old_file 1.patch
通过patch来进行源码更新。
通常对于一个安装好了的程序,由于版本更新会推出新的版本,实际上是对上一个版本的部分更新和变动。所以没有必要重新安装,只需要将修改的内容进行更新即可,其实需要软件商在发布软件更新版本的同时也提供了patch文件。
linux生成目录间补丁,linux之打补丁相关推荐
- linux生成目录间补丁,Linux文件比对工具,Linux diff的用法,Linux补丁制作,patch用法...
diff通常在于比对同个文件不同版本之间的差异,不同文件没意义,因为差异都会出来 用法 diff [-bBi] from-file to-file -b忽略一行当中多个空白符号的差异 例如about ...
- linux生成目录间补丁,linux打补丁 patch
1.diff的使用 diff可以完成比较功能,生成补丁文件 格式::diff [option] oldfile newfile 常用的option选项有: -r 对目录进行递归处理 -u 输出统一格式 ...
- linux树形目录结构存放,Linux目录结构
Linux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些目录应该是标准的.各个Linux发行版本会存在一些小小的差异,但总体来说,还是大体差 ...
- linux deploy目录形式,安装Linux Deploy
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 安装linux deploy高版本如2.4版本不用使用额外的busy box 不然后出现不能生成大于2G的linu ...
- linux生成动态链接库返回字符串,Linux动态链接库的生成和使用
目录 1. 编写C程序 比如编写myfunc.c文件,里面包含两个函数,一个是say_hello,另一个是cal_sum. #include "myfunc.h" void say ...
- linux的目录proc pid,Linux /proc第一篇----/proc/pid记录了什么
由于自己Linux系统知识基础比较薄弱,准备比较全面学习,准备从/proc这个目录开始.实际上这个目录也基本上记录所有系统运行时和内核的一些信息,所以如果想对linux系统有一个比较全面的了解,从/p ...
- linux复制目录命令夹,linux复制目录(文件夹)和打包命令
linux复制目录(文件夹)和打包命令 复制目录命令: cp 需要复制的目录 -r 目的目录 (注意带参数-r) 压缩文件:zip -r 压缩后文件名 需要压缩的目录 喎?http://www.Bkj ...
- linux 关于目录的命令,Linux ---- 关于目录基本命令
Linux ---- 关于目录基本命令 Linux ---- 关于目录基本命令 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可 ...
- linux ctags目录在哪里,Linux(centos)下vim、ctags的配置及基本用法详解
一.vi/vim 基本使用方法vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的配置和一小部分指令.由于对Unix及Linux系统 ...
最新文章
- ASP.NET导出文件FileResult的使用
- 通过mrtrix3进行概率纤维追踪+核磁共振影像数据处理
- python播放视频
- C语言-getopt函数
- BZOJ1082: [SCOI2005]栅栏
- ORACLE TEXT LEXER PREFERENCE(二)
- spark读取文件源码分析-1
- Finally 与 return
- GARFIELD@12-20-2004
- 2020年中国直播电商行业研究报告
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
- 拓端tecdat|R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
- .NET反射 Type类
- 我的 HTTP/1.1 好慢啊!
- 考UCPM产品经理证书是否值得?
- 字节跳动前端实习面经
- WSJ0数据集简单介绍
- mysql变量赋值加冒号,mysql 冒号
- JavaScript中null、underfined、NaN的辨别以及数据类型的检测
- 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行)
热门文章
- leetcode系列-116.填充每个节点的下一个右侧节点指针
- WinForm 关于任务栏图标进程结束后图标无法自动清除的问题!
- 2021-12-11牛客网C++项目——Linux编程介绍入门(二)
- 阿里体育早起打卡服务器无响应,帮你解决无法早起的焦虑-顺便撸羊毛
- Python 学习笔记 列表 xxx XXX
- 基于Atmega16的外部中断实验
- python3标准库
- 用python写期货量化策略,期货单品种MACD择时加ATR止损
- python迭代器什么时候用_如何在python中使用迭代器
- java springcloud面试题_JAVA语言之springboot+springcloud相关面试题