Linux diff命令(比较两个文件或目录的内容差异)

文章目录

  • Linux `diff` 命令详解教程
    • 基本用法
      • 比较文件
      • 输出解释
    • 递归比较(-r)
      • 示例代码
    • 控制输出格式
      • 统一格式(-u)
      • 上下文格式(-c)
    • 高级选项
      • 忽略所有空白差异(-w)
      • 仅报告文件是否不同

Linux diff 命令详解教程

diff 是一个在 Unix 和 Linux 系统中广泛使用的命令行工具,用于比较两个文件或目录的内容差异。本文将深入探讨 diff 命令的各种用法,包括基本比较、递归比较、输出格式控制等高级功能。

基本用法

比较文件

diff 命令最基本的用法是比较两个文件,命令格式如下:

diff [options] file1 file2

示例代码,比较两个文本文件 text1.txttext2.txt 的内容:

diff text1.txt text2.txt

在这里插入图片描述
在这里插入图片描述

如果没有任何输出,表明这两个文件在内容上是相同的。如果文件有差异,diff 会显示这些差异的具体行和内容。

输出解释

当发现两个文件不相同时,diff 输出的格式通常如下:

3c3
< one
---
> two

这表示 file1 的第三行是 “one”,而 file2 的第三行是 “two”。这里 < 符号表示第一个文件的内容,> 符号表示第二个文件的内容。

上面3c3是一种指示符,用于描述发生变化的行号和变化类型。这个特定的输出格式来自于传统的diff输出模式,这里是如何解释的:

  • 3c3 中的第一个数字 3 表示在第一个文件(通常是比较中的左侧文件)中涉及变更的起始行号。
  • c 是一个字母,表示变更的类型。在这里,c 表示 “change”(更改)。diff 使用不同的字母来表示不同类型的差异:
    • c 表示更改(change)。
    • a 表示添加(addition)。
    • d 表示删除(deletion)。
  • 第二个 3 表示在第二个文件(通常是比较中的右侧文件)中涉及变更的起始行号。

因此,3c3 告诉用户在两个文件的第三行发生了变化。

递归比较(-r)

当需要比较包含多个文件和目录的两个目录时,可以使用 -r 选项。这使 diff 能够递归地比较每个文件。

示例代码

比较两个目录 dir1dir2

diff -r dir1 dir2

在这里插入图片描述

这将输出这两个目录中所有不同的文件和子目录的差异。

控制输出格式

diff 命令提供多种输出格式,可以更清晰地理解文件之间的差异。

统一格式(-u)

使用 -u 选项可以生成易于理解和适合用于补丁的输出格式:

diff -u file1 file2

在这里插入图片描述

输出示例:

--- file1    2021-06-07 12:00:00.000000000 +0200
+++ file2    2021-06-07 12:01:00.000000000 +0200
@@ -1,5 +1,5 @@
 This is a file
-with
+a
 small
 example
 text.

这里 @@ -1,5 +1,5 @@ 表明比较的是从第一行开始的共五行代码。- 表示 file1 的内容,+ 表示 file2 的内容。

上下文格式(-c)

上下文格式通过 -c 选项提供,它包含了更多周围的上下文信息,帮助理解变更的前后关系:

diff -c file1 file2

输出示例:

*** file1    2021-06-07 12:00:00.000000000 +0200
--- file2    2021-06-07 12:01:00.000000000 +0200
***************
*** 1,5 ****
  This is a file
- with
  a
  small
  example
--- 1,5 ----
  This is a file
+ a
  small
  example

高级选项

diff 还提供了一系列高级选项,用于忽略空白差异、只显示差异而不显示具体内容等。

忽略所有空白差异(-w)

使用 -w 选项可以忽略空格和制表符带来的差异:

diff -w file1 file2

仅报告文件是否不同

使用 -q 选项可以简洁地报告文件是否不同,而不显示具体差异:

diff -q dir1 dir2

输出示例:


plaintext
Files dir1/file1 and dir2/file1 differ

通过这些方法,可以有效地使用 diff 命令来识别和处理文件及目录间的差异,无论是进行代码审核、生成补丁文件还是简单的文件比较。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/610517.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Web】CTFSHOW 单身杯 题解

目录 web签到 easyPHP 姻缘测试 web签到 用data协议包含php标签闭合 payload: filedata://text/plain,<?php system($_GET[1]);?>>?;)]1[TEG_$(metsys php?<,nialp/txet//:atadeasyPHP 一眼awk命令执行 payload: cmdawk&param{system("ta…

MySQL数据库连接 提示错误 10060

错误现象 Cant connect to server on (10060) 有3个原因&#xff1a; 1、防火墙没有关闭 &#xff08;注意如果配置开放了3306端口&#xff0c;则不可以关闭防火墙&#xff0c;需删除规则以后才能关闭&#xff09; 关闭防火墙&#xff08;1次&#xff09;systemctl stop fir…

数据结构_顺序表中基本操作的实现_代码

学习笔记&#xff0c;仅供参考 1.头文件 2.初始化 3.增加值 4.根据下标取值 5.查找 6.插入 7.删除 8.动态增加数组的长度 9.所有代码 10.运行结果 1.头文件 //顺序表的实现——动态分配 #include<stdio.h> #include<stdlib.h> #define InitSize 10 type…

Arduino-点亮TFT触摸屏一

Arduino-点亮TFT触摸屏一 1.概述 这篇文章主要介绍Arduino操作TFT触摸屏入门操作&#xff0c;通过SPI通信协议方式点亮TFT触摸屏。 2.硬件电路 2.1.硬件列表 名称数量Arduino Uno12.8" TFT彩色液晶触摸屏模块&#xff08;ILI9431&#xff09;110K 电阻5面包板1杜邦线…

ICode国际青少年编程竞赛- Python-3级训练场-if语句入门

ICode国际青少年编程竞赛- Python-3级训练场-if语句入门 1、 for i in range(5):Spaceship.step(i 1)Spaceship.turnRight()if i 1:Dev.step(1)Dev.step(-1)2、 for i in range(4):Dev.step(2)if i ! 1:Dev.turnLeft()Dev.step(3)Dev.step(-3)Dev.turnRight()3、 for i…

springboot3项目练习详细步骤(第三部分:文章管理模块)

目录 发布文章 接口文档 业务实现 自定义参数校验 项目参数要求 实现思路 实现步骤 文章列表(条件分页) 接口文档 业务实现 mapper映射 更新文章 接口文档 业务实现 获取文章详情 接口文档 业务实现 删除文章 接口文档 业务实现 文章管理业务表结构…

OpenHarmony实战开发——WLAN驱动框架介绍及适配方法

1. WLAN 驱动框架概述 WLAN 是基于 HDF(Hardware Driver Foundation)驱动框架开发的模块&#xff0c;该模块可实现跨操作系统迁移、自适应器件差异、模块化拼装编译等功能。从而降低 WLAN 驱动开发的难度&#xff0c;减少 WLAN 驱动移植和开发的工作量。 本文主要分析 WLAN 驱…

gif压缩大小但不改变画质怎么做?分享5个压缩GIF原理~

GIF&#xff08;图形互换格式&#xff09;是网络上广泛使用的一种图像格式&#xff0c;因其支持动画而备受欢迎。然而&#xff0c;随着动画越来越复杂和高分辨率&#xff0c;GIF 文件大小也随之增加&#xff0c;可能导致加载速度变慢和带宽消耗增加。在这篇文章中&#xff0c;我…

easypoi动态表头导出数据

需求&#xff1a;动态导出某年某月用户和用户评分数据信息&#xff0c;表头(序号、姓名、用户姓名)&#xff0c;数据(所有用户对应的评分以及平均分)&#xff1b; 分析&#xff1a;1、表头除过序号、姓名&#xff0c;用户姓名要动态生成&#xff1b; 2、用户评分信息要和表头中…

Nginx+GateWay

目录 Nginx nginx如何配置负载均衡 负载均衡有哪些策略 1、轮询&#xff08;默认&#xff09; 2、指定权重 3、ip_hash&#xff08;客户端ip绑定&#xff09; 4、least_conn&#xff08;最少连接&#xff09; 5、fair 6、url_hash Nginx为什么效率高 gateway 使用gat…

Lobe Chat–在线AI对话聊天机器人,一键部署,免费开源

Lobe Chat 现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架 支持语音合成、多模态、可扩展的&#xff08;function call&#xff09;插件系统 一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用 项目演示 支持多种模型接口 支持语音输入输出 支持云端同步 丰富多彩非…

1013: 哈希表(开放定址法处理冲突)

解法&#xff1a; 线性探测是一种解决哈希冲突的方法&#xff0c;当发生哈希冲突时&#xff0c;它会依次往后查找空的槽位&#xff0c;直到找到一个空的槽位或者达到数组的末尾。 下面是处理哈希冲突的线性探测的步骤&#xff1a; 创建一个哈希表&#xff0c;里面包含一定数量的…

Ps 滤镜:视频

Ps菜单&#xff1a;滤镜/视频 Filter/Video “视频”滤镜子菜单中包含了“NTSC 颜色”和“逐行”两个滤镜。 这两个滤镜都是针对视频和电视播放的特定需求设计的。 “逐行”滤镜主要解决交错视频的视觉问题&#xff0c;而“NTSC 颜色”滤镜则确保色彩在电视播放时的兼容性和准确…

一文带你了解OSPF 七种LSA类型,很全!

大家好&#xff0c;今天我们 带大家了解一下OSPF的七种LSA类型。 在OSPF&#xff08;开放式最短路径优先&#xff09;协议中&#xff0c;LSA&#xff08;链路状态通告&#xff09;是一种至关重要的数据格式&#xff0c;专门用于描述路由信息。它包含了路由器或网络的各种状态信…

编写一个C#程序,实现音乐文件的播放功能

一、作业要求 要求1&#xff1a; 1. 程序应能够读取MP3文件&#xff0c;并播放其中的音频。 2. 程序应能够处理可能出现的异常&#xff0c;如文件不存在、文件读取错误等。 3. 程序应具有良好的用户界面&#xff0c;方便用户进行操作。 4. 程序应具有良好的兼容性&#xf…

VK6932 SOP32数码屏驱动IC抗干扰数显芯片高稳定LED驱动 原厂FAE支持

产品型号&#xff1a;VK6932 产品品牌&#xff1a;永嘉微电/VINKA 封装形式&#xff1a;SOP32 工程服务&#xff0c;技术支持&#xff01; 概述 VK6932是一种数码管或点阵LED驱动控制专用芯片&#xff0c;内部集成有3线串行接口、数据锁存器、LED 驱动等电路。SEG脚接LED阳…

【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法

欢迎来到《小5讲堂》 这是《Python》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言无执行文件代码报错信息错误路径手动下载自动下载 选项配置Ch…

js之遍历方法

先创建一个数组&#xff0c;然后使用for.in进行遍历&#xff0c;如下图所示sub代表下标并且遍历几次&#xff0c;arr代表数组 <script>let arr [1, 2, 3, 4, 5, 6];for (let sub in arr) {console.log(arr);}</script> 第二种方法则是for循环遍历&#xff0c;根据…

Transformer 解析 超级详细版

推荐学习视频 汉语自然语言处理-从零解读碾压循环神经网络的transformer模型(一)- 注意力机制-位置编码-attention is all you need_哔哩哔哩_bilibili 目录 首先下transformer和LSTM的最大区别是什么&#xff1f; 1.positional \ encoding, 即位置嵌入(或位置编码); 2 自注…

windows连接CentOS数据库或Tomcat报错,IP通的,端口正常监听

错误信息 数据库错误&#xff1a; ERROR 2003 (HY000): Cant connect to MySQL server on x.x.x.x (10060) Tomcat访问错误&#xff1a; 响应时间过长 ERR_CONNECTION_TIMED_OUT 基础排查工作 【以下以3306端口为例&#xff0c;对于8080端口来说操作是一样的&#xff0c;只需…
最新文章