diff

最原始的 diff

我们先编写两个文件:

f1:

1
2
3
4
5
6
7
8
9

f2:

1
2
3
4
5
66
7
8
9

然后我们进行比较:

diff f1 f2
6c6
< 6
---
> 66
  1. 第一部分 6c6:表示变动的位置

    • 第一个 6 表示文件 f1 的第 6 行有变化
    • c 表示变动模式是 change(变更)。除了 change 外,变动模式还有 add(新增)和 delete(删除)
    • 第二个 6 表示变动后变成 f2 的第 6 行
  2. 第二行 < 6 和 f1 相关。< 表示要从 f1 当中去除该行,后面的 6 表示该行的内容

  3. 第三行 --- 用来分割 f1 和 f2 的内容

  4. 第四行 > 66 和 f2 相关。> 表示 f2 增加了该行,后面的 66 表示该行的内容

context diff

显示上下文模式的 diff

上下文各显示 3 行

diff -c f1 f2
*** f1	Mon Mar 11 21:05:01 2024
--- f2 Mon Mar 11 21:04:56 2024
***************
*** 3,9 ****
3
4
5
! 6
7
8
9
--- 3,9 ----
3
4
5
! 66
7
8
9
  1. 第一部分 *** f1 Mon Mar 11 21:05:01 2024:文件名和时间

    • *** 表示变动前的文件
    • --- 表示变动后的文件
  2. 第三行的星号 *************** 是分隔符
  3. 分隔符下的第二部分第一段:
    • *** 表示变动前的文件
    • 3,9 表示下面的内容是该文件的第 3 到 9 行
    • 每行前面的标记位,+ 表示该行为新增,! 表示该行有改动,- 表示该行被删除
  4. 分隔符下的第二部分第二段:
    • --- 表示变动后的文件

unified diff

合并模式的 diff

diff -u f1 f2:

--- f1	2024-03-11 21:08:41
+++ f2 2024-03-11 21:08:40
@@ -3,7 +3,7 @@
3
4
5
-6
+66
7
8
9
  1. 第一部分 --- f1 2024-03-11 21:08:41:文件名和时间

    • --- 表示变动前的文件
    • +++ 表示变动后的文件
  2. 第二部分 @@ -3,7 +3,7 @@:表示变动的位置
    • -3,7- 号表示变动前的文件,3,7 表示从第 3 行开始的连续 7 行
    • +3,7:表示变动后的文件的从第 3 行开始的连续 7 行
  3. 第三部分:变动的具体内容,上下文各显示 3 行
    • 标志位 - 表示第一个文件删除的行
    • 标志位 + 表示第二个文件新增的行

附:git 版本的 diff

git diff
diff --git a/f1 b/f1
index 6f8a38c..449b072 100644
--- a/f1
+++ b/f1
@@ -3,7 +3,7 @@
3
4
5
-6
+66
7
8
9
  1. 第一部分 diff --git a/f1 b/f1

    • diff --git 表示这是 git 版本的 diff
    • a/f1 b/f1 表示进行比较的是 a 版本的 f1(即变动前)和 b 版本的 f1(即变动后)
  2. 第二部分 index 6f8a38c..449b072 100644
    • index xxx..xxx表示两个版本的 git 哈希值(index 区域的 6f8a38c 对象,与工作目录区域的 449b072 对象进行比较)
    • 100644 是对象的模式(普通文件,644 权限)
  3. 后面的部分与 unified 模式相同

diff 输出解释的更多相关文章

  1. 《The Linux Command Line》 读书笔记03 ls命令与长格式输出解释 文件权限

    ls命令与长格式输出解释 文件权限 ls命令 ls 命令用于列出目录内容,不带参数时列出当前工作目录的内容,也可以指定目标目录(可以指定多个),列出目标目录下的内容. ls命令的参数 ls -l 长格 ...

  2. 【转】top命令输出解释以及load average 详解及排查思路

    https://blog.csdn.net/zhangchenglikecc/article/details/52103737 昨天nagios报警warning,没来得及留下报警截图,nagios值 ...

  3. top命令输出解释以及load average 详解及排查思路

    原地址: https://blog.csdn.net/zhangchenglikecc/article/details/52103737 1.top输出以及load average 详解 昨天nagi ...

  4. linux diff具体解释

    diff是Unix系统的一个非常重要的工具程序. 它用来比較两个文本文件的差异,是代码版本号管理的基石之中的一个.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件 ...

  5. Linux面试必问-对照目录内容的命令“Diff”具体解释

    dir1下有个log_1.log dir2下有个log_2.log 两个文件例如以下: p_ylwu@VM_194_111_sles10_64:/home/jdxochen/exercise> ...

  6. [系统资源]/proc/meminfo和free输出解释

    High Level statistics RHEL 5, RHEL 6 and RHEL 7 MemTotal: Total usable memory MemFree: The amount of ...

  7. Linux ps -ef 命令输出解释

    UID: 程序拥有者PID:程序的 IDPPID:程序父级程序的 IDC:  CPU 使用的百分比STIME: 程序的启动时间TTY: 登录终端TIME : 程序使用掉 CPU 的时间CMD: 下达的 ...

  8. Linux下diff的操作详解

    总述 Linux diff命令用于比较文件的差异.diff以逐行的方式,比较文本文件的异同处.特别是比较两个版本不同的文件,如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子 ...

  9. svn diff 详解

    UI版: 如果多人编辑同一段代码,常常容易出现冲突的情况: 如果出现冲突,我们如何解决他呢? 1 可以选择使用自己的文件mime file,也可以使用 他们的文件 their file 2 解决冲突, ...

  10. diff输出格式解析

    1 命令格式 $diff <变动之前的文件> <变动之后的文件> 2 diff文件的三种格式 normal diff context diff unified diff 3 示 ...

随机推荐

  1. 理解shell

    理解shell shell不单单是CLI,而是一种复杂的交互式程序. 1. shell的类型 当你登录系统时,系统启动什么样的shell程序取决于你的个人用户配置.在/etc/passwd文件中,用户 ...

  2. dubbo面试题及答案

    Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目. 面试官问你如果这个都不清楚,那下面的就没必要问了. 官网:ht ...

  3. win10配置 sshkey

    win10配置 sshkey 一:生成sshkey 打开powershell 或者 cmd 输入命令: ssh-keygen -t rsa 1 提示输入文件名 [不输入,使用默认文件名,回车] 2 提 ...

  4. 自写ApiTools工具,功能参考Postman和ApiPost

    近日在使用ApiPost的时候,发现新版本8和7不兼容,也就是说8不支持离线操作,而7可以. 我想说,我就是因为不想登录使用才从Postman换到ApiPost的. 众所周知,postman时国外软件 ...

  5. Qt+OpenCascade开发笔记(二):windows开发环境搭建(二):Qt引入occ库,搭建基础工程模板Demo和发布Demo

    前言   Open CASCADE是由Open Cascade SAS公司开发和支持的开源软件开发平台,旨在为特定领域快速开发程序而设计.它是一个面向对象的C++类库,提供了丰富的几何造型.数据交换和 ...

  6. h5py文件写入之——flush和update

    技术背景 在前面的一篇博客中,我们介绍过使用VMD可视化H5MD标准化格式的轨迹文件的方法.H5MD本质上就是一个有规范格式的hdf5二进制文件,本文主要介绍两个关于hdf5的内容更新操作. 写入和更 ...

  7. 【Python】GUI开发笔记

    一.环境搭建: 1.Pycharm开发工具 pycharm历史版本 https://www.jetbrains.com/pycharm/download/other.html 破解插件 https:/ ...

  8. 【Centos6】时间同步问题

    解决方案参考: https://www.cnblogs.com/webnote/p/5751758.html centos6并不会主动同步时间 上一次关机,将时间停留了 使用硬件时间同步校准 [roo ...

  9. 【Tutorial C】08 函数 Function

    函数的定义 C源程序是由函数组成的. 最简单的程序有一个主函数 main(),但实用程序往往由多个函数组成, 由主函数调用其他函数,其他函数也可以互相调用. 函数是C源程序的基本模块,程序的许多功能是 ...

  10. 【Windows】XP系统安装TIM/QQ 数字签名过期问题

    需要手动安装数字签名 右键安装包 -> 属性 但是我的TIM没有用,对QQ是有效的 参考自视频: https://www.bilibili.com/video/av413122971/