1指令格式
在Linux 中,我们可以使用diff --help查看详细指导(篇幅有限只截图了一部分作为展示)
常用命令格式:
diff[参数][文件1或目录1][文件2或目录2]
常用命令展示:
1.Linux内核diff自定义的补丁
diff -ruN linux-4.19-rc3_lyn linux-4.19-rc3 > linux-4.19-rc3_lyn.patch
这个是我经常使用的命令,用来比较生成我修改后的代码的补丁包,最后用patch命令打补丁到需要使用的内核源码中去
2.在git中也会有diff可以查看两次版本的差异
git diff 04120e84525eca1c590d30b84ce7463b9e8a1497 f88b0054170b99b149bd0fbe5f138c66c64dd1c6
其中diff之后的版本号通过git log 打印出来进行比较
2命令参数详细解释
-:指定要显示多少行的文本 。此参数必须与-c或-u参数一并使用;
-a或--text:diff预设只会逐行比较文本文件;
-b或---space-:不检查空格字符的不同;
-B或---blank-lines:不检查空白行;
-c:显示全部内容,并标出不同之处;
【3 diff输出的文件解释】-C或--:与执行“-c-”指令相同;
-d或——:使用不同的演算法,以小的单位来做比较;
-D或ifdef:此参数的输出格式可用于前置处理器巨集;
-e或——ed:此参数的输出格式可用于ed的文件;
-f或--ed:输出的格式类似ed的文件,但按照原来文件的顺序来显示不同处;
-H或--speed-large-files:比较大文件时,可加快速度;
-l或----lines:若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异;
-i或---case:不检查大小写的不同;
-l或——:将结果交由pr程序来分页;
-n或——rcs:将比较结果以RCS的格式来显示;
-N或--new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录,文件A 若使用-N参数,则diff会将文件A 与一个空白的文件比较;
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称;
-P或---new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较;
-q或--brief:仅显示有无差异,不显示详细的信息;
![3 diff输出的文件解释](http://img.gansulong.com/231001/0150562c6-0.jpg)
文章插图
-r或——:比较子目录中的文件;
-s或----files:若没有发现任何差异,仍然显示信息;
-S或---file:在比较目录时,从指定的文件开始比较;
-t或---tabs:在输出时,将tab字符展开;
-T或---tab:在每行前面加上tab字符以便对齐;
-u,-U或--=:以合并的方式来显示文件内容的不同;
-v或——:显示版本信息;
3 diff输出的文件解释
说完了diff命令的操作,我们再来看看diff命令输出文件,因为有时候我们通过输出信息自己比对文件的差异结论 。
1.diff直接输出到终端显示
说明:
2.diff直接输出为patch文件查看
如图所示,我打开了我对比内核代码之后生成的.patch文件为例:
里面有每个文件都会标注
Binary files linux-4.19-rc3_lyn/arch/arm/boot/compressed/ashldi3.o and linux-4.19-rc3/arch/arm/boot/compressed/ashldi3.o differdiff -ruN linux-4.19-rc3_lyn/arch/arm/boot/compressed/.ashldi3.o.cmd linux-4.19-rc3/arch/arm/boot/compressed/.ashldi3.o.cmd--- linux-4.19-rc3_lyn/arch/arm/boot/compressed/.ashldi3.o.cmd1970-01-01 08:00:00.000000000 +0800+++ linux-4.19-rc3/arch/arm/boot/compressed/.ashldi3.o.cmd2020-08-21 10:54:52.774658500 +0800@@ -0,0 +1,80 @@+cmd_arch/arm/boot/compressed/ashldi3.o := arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/boot/compressed/.ashldi3.o.d-nostdinc -isystem /work/tools/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.4/include -I./arch/arm/include -I./arch/arm/include/generated-I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Iarch/arm/mach-s3c24xx/include -Iarch/arm/plat-samsung/include -D__ASSEMBLY__ -fno-PIE -DCC_HAVE_ASM_GOTO -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=4 -march=armv4t -mtune=arm9tdmi -include asm/unified.h -msoft-float -Wa,-gdwarf-2 -DZIMAGE-c -o arch/arm/boot/compressed/ashldi3.o arch/arm/boot/compressed/ashldi3.S++source_arch/arm/boot/compressed/ashldi3.o := arch/arm/boot/compressed/ashldi3.S++deps_arch/arm/boot/compressed/ashldi3.o := \
- 探索创意之旅:打造个人网页的精彩奇遇
- Linux中PS1
- 基于Halcon的焊锡脚挂锡识别项目
- 6 bash ps1变量_shell基础PS1环境变量的作用和使用方法
- Excel中怎么把混乱的数据分列?
- 关于2006绝对唱响的介绍 2006绝对唱响
- 关于ilegenes黑耀的轨迹的介绍 ilegenes黑耀的轨迹
- C#OCR图片识别
- ——对小车最佳路径计算算法的ray部署和测试
- ?LeetCode刷题实战372:超级次方