linux系统工具程序diff使用小结
2017-11-14 09:31
302 查看
########################################################### # linux系统工具程序"diff"使用小结 ########################################################### # 功能:用来比较两个文本文件的差异,常用来查看源代码程序的修改 # 语法: diff <file_changed_before> <file_changed_after> # 格式: 正常格式(normal diff) 上下文格式(context diff) 合并格式(unified diff) # 例子: file_changed_before.txt(修改前的文件,每行一个a,一共8行) ------------------- a a a a a a a a ------------------- file_changed_after.txt(修改后的文件,将第5行修改为b) ------------------- a a a a b a a a ------------------- # 正常格式(normal diff) diff file_changed_before.txt file_changed_after.txt 终端输出结果: 注释: ------------------- 5c5 #用来说明变动位置,分成三部分,5表示第一个文件第5行有变化,c表示变动模式是内容改变(change), #其他模式还有“增加”(a,代表addition)和“删除”(d,代表deletion),5表示变动后成为第二个文 #件的第5行。 < a #<表示从第一个文件中去除该行,a表示该行内容。 --- #仅用作分割线 > b #>表示第二个文件增加了该行,b表示该行内容 ------------------- # 上下文格式(context diff) diff -c file_changed_before.txt file_changed_after.txt 终端输出结果: 注释: ---------------------------------------------------------------------- *** file_changed_before.txt 2017-11-14 16:32:00.563363807 +0800 #前两行表示文件的基本信息:文件名和时间 --- file_changed_after.txt 2017-11-14 16:31:55.643363947 +0800 #***表示修改前的文件,---表示修改后的文件 *************** #分割线,无特殊含义 *** 2,8 **** #显示发生变化的第5行,另外包括前三行和后三行表示上下文,"2,8"表示显示从第2行到第8行总共7行 a #另外文件内容每一行前面有一个标记位,为空表示该行无变化,"!"表示有改动,"-"表示被删除,"+"表示新增 a a ! a a a a --- 2,8 ---- #显示修改后的上下文总共7行 a a a ! b a a a ---------------------------------------------------------------------- # 合并格式(unified diff) diff -u file_changed_before.txt file_changed_after.txt 终端输出结果: #注释: ---------------------------------------------------------------------- --- file_changed_before.txt 2017-11-14 16:32:00.563363807 +0800 #文件基本信息 +++ file_changed_after.txt 2017-11-14 16:31:55.643363947 +0800 #"---"表示修改前文件,"+++"表示修改后文件 @@ -2,7 +2,7 @@ #文件修改的位置,用两个"@"作为起始和结束,"-2,7"表示修改前的文件从第2行开始连续7行 a #"+2,7"表示修改后的文件从第2行开始连续7行 a #每行前有一个标志位,空表示无变化,"-"表示修改前文件删除的行,"+"表示修改后文件增加的行 a -a +b a a a ---------------------------------------------------------------------- # git格式的diff # 版本管理系统git使用的是合并格式的变体 git diff 终端显示结果:(此处不在使用上面使用的例子文件,随便拿一个文件作介绍) ---------------------------------------------------------------------- diff --git a/readme.txt b/readme.txt #表示结果为git格式的diff,进行比较的是a版本和b版本的readme.txt index a9c5755..f16b476 100644 #表示两个版本的git哈希值(index区域的a9c5755对象,与工作目录区 #域的f16b476对象),最后的六位数字是对象的模式(普通文件,644权限) --- a/readme.txt #从该行开始与合并格式的diff相同 +++ b/readme.txt @@ -1,4 +1,4 @@ Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. -Git tracks changes of files. +Git tracks changes of files.h ----------------------------------------------------------------------
参考链接:读懂diff
相关文章推荐
- Windows做共享存储mount到Linux系统使用ftp工具上传与使用java程序上传文件
- linux下文件比较工具diff|cmp使用小结
- linux下文件比较工具diff|cmp使用小结
- linux下文件比较工具diff|cmp使用小结
- linux 系统下磁盘检测工具e2fsck的使用
- Linux系统pkg-config工具的使用
- 文件系统管理 之 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- linux 系统负载&监控指标及使用工具 笔记
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 一些linux应用小技巧,网络相关,系统管理,shell,程序使用
- linux程序调试及调试工具使用笔记
- Linux 查看磁盘分区、文件系统、磁盘的使用情况相关的命令和工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍