diff是比较两个 文本文件, 或目录,(中名字相同的文件)

diff 是按行来比较的, 只要两个对应的行, 不完全一致, 就报告为不同, 否则就视为相同. (一行中任意一点的不同...)

检查时, 指定选项:(只要有这三个)

-b或--ignore-space-change  不检查空格字符的不同。

-B或--ignore-blank-lines  不检查空白行。

-i --ignore-case : 检查时,忽略大小写

-w 忽略全部的空格字符

主要有 四种比较显示 方式

第一. 是普通 的显示方式 --normal 这是默认的 (相同的行不显示, 只显示不同的行...)

第二. 是 并排显示的 : -y, -W 80

而显示报告不同的 情形 无非只有 三种:

一是 两行比较时, 有不同, 二是 前面的文件比后面的文件对应的行要多, 三是 前面的文件比后面的文件 行要 少.

所以 :

普通显示时: 有 三个符号 : 用 c表示 不同, 即: change, 有变化; a表示 add, 即前面的文件file1 比 后面的文件file2 多一行到n行; d表示delete, 即前面的比后面的要少.

并排比较时, 也有三种对应的符号: | 表示change, < 表示add, > 表示 delete ....

第三, 是 上下文输出显示方式, 即, 先输出第一个文件的连续行, 然后输出 第二个文件的 连续行(不同的地方), 所以叫上下文. (这个是 加州大写伯克利分校推出BSD版本时 觉得默认格式

太简单了, 需要加入显示上下文的信息, 更详细了解变化情况.

格式是: diff old new -c: -c 表示 context 上下文. 输出方式; 或者叫(前后 输出 方式) (每一行的行首 标记位: ! 标识不同, - 标识这一行被删除, +标识这一行新增的)

第四, 是统一 /合并 输出方式 -u表示 unified. unified. 即 将 两个文件相同的行只 显示一次, 而不同的行 前后一行挨着显示.

diff old new -u

第3, 4 种方式, 总是 先生成 两个文件的 说明信息, 标识 符号 用 +++ --------- *** 来标识...


要理解diff, 就要理解diff产生的背景和作用, 他是unix 用来进行代码管理的基石. 是通过比较 版本变化前后的文件的区别, 来生成patch补丁文件, 进行版本控制和复原的.

格式是: diff <version1, 版本变化前的文件> ( version2, 版本变化后的文件) > patchfile.

即;:: 通过 diff 得到 补丁文件 patchfile

然后 根据 file1 和 patchfile 来 将 file1, 打补丁到file2: patch file1 patchfile

或者通过 file2 和patchfile 来回复到file1: patch -R file2 patchfile.

格式 总是 :patch [ oldfile | -R newfile] patchfile

通常 用 ----- 或 **** 表示 变动 前的版本, 而 +++ 表示 变动后的 版本....

git格式的 diff: 默认使用的是 unified 格式的显示(unified 主要用于 相差很小 高度相似的 两个文件....!!!

diff --git a/f1 b/f2....

....

php的 接口中的函数, 不必使用 abstract. 直接 使用: public function 就可以了, 不必加abstract.

interface IFoo{
public function f1(...);
public function f2(...);
}

接口既可以被 普通类 来 实现implements, 也可以被 其他接口 来继承 extens.

也就是说 一个类要 实现多个接口, 有两种方式, 一种是直接实现 多个接口 : class c implements a , b {..}, 另一种是, 先让接口多个 逐渐多层次的 继承, 然后让普通类 只实现最后的 接口: interface b extends a {} , interface c extends b {...}, class d implements c{...}.

实现接口的普通类 本身 是可以包含 其他 成员变量 , 和其他普通方法的...

php中的常量 一是不能用 $ 符号; 二是要用 const 来 限制, 比如: const Pi=3.14; 类里面也可以定义 常量成员: class Foo {const Pi = 3.14} 引用时 Foo::Pi

简单明了的掌握diff命令? 参考: http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html的更多相关文章

  1. LINUX DIFF命令详解

    刚才在和公司做离线IP对比,最后手工了,感觉还是比较麻烦的,遇到数据很大的时候不能手工进行了 本想用linux下的DIFF来进行对比,发现结果很乱.时间很紧最后还是手工了. 现在忙完要认认真真学习一下 ...

  2. Linux 文本对比 diff 命令详解(整理)

    diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...

  3. [转帖]ipvsadm命令参考及其应用例子

    ipvsadm命令参考及其应用例子 https://blog.csdn.net/orichisonic/article/details/47375227 只是简单创建了 service和添加serve ...

  4. diff 命令详解

    [自注:] 1,还有个colordiff命令,用颜色标识不同的地方.需要先安装 2,diff normal模式中 2,5表示从第二行到第五行 3,diff -c 模式中,2,5表示从第二行到第五行 4 ...

  5. diff 命令实用

    1.概述 本文将要讨论的是diff命令,diff用来比较两个文件.当然文件比较的工具很多,windows系统下面就有不错的工具可以使用,例如常用的Beyond Compare,WinMerge都是图形 ...

  6. 『现学现忘』Git基础 — 21、git diff命令

    目录 1.git diff 命令说明 2.比较工作区与暂存区中文件的差别 3.比较暂存区与本地库中文件的差别 4.总结git diff命令常见用法 5.总结 1.git diff 命令说明 在comm ...

  7. diff命令

    描述 在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - 由标准输入设备读入的文本. 作为特别的情况是, diff - - 比较一份标准输入的它自己的拷贝如 ...

  8. diff命令参数

    diff命令参数: diff - 找出两个文件的不同点 总览 diff [选项] 源文件 目标文件 描述 在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - ...

  9. diff命令的参数详解和实例 【转】

    转自:http://blog.chinaunix.net/uid-25324849-id-270254.html diff命令参数: diff - 找出两个文件的不同点 总览 diff [选项] 源文 ...

随机推荐

  1. Ajax的重构

    Ajax的重构方法: (1)创建一个单独的JS文件,命名为AjaxRequest.js,并且在该文件中编写重构Ajax所需要的代码. var net = new Object(); //创建一个全局变 ...

  2. train_val.prototxt文件和deploy.prototxt文件开头的区别

    1.开头不同 对train_val.prototxt文件来说,开头部分定义训练和测试的网络及参数 对deploy.prototxt文件来说,开头部分定义实际运用场景的配置文件,其参数不定义数据来源,仅 ...

  3. Vue系列之 => 自定义键盘修饰符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 20155228 2016-2017-2 《Java程序设计》第4周学习总结

    20155228 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承与多态 继承:在Java中,子类只能继承一个父类,关键字为extends,子类和父类之间 ...

  5. Java -cp 命令查看 zookeeper 日志

  6. superblock 区块数据读取

    鸟哥私房菜笔记: 命令:df -Th Filesystem:代表该文件系统是在哪个 partition ,所以列出设备名称:1k-blocks:说明下面的数字单位是 1KB 呦!可利用 -h 或 -m ...

  7. javascript常用积累

    一.JS动画与动作不一致解决: if(!$( "#handle").is(":animated")){ //判断元素是否处于动画状态 } 二.停止事件冒泡 ev ...

  8. golang学习笔记6 beego项目路由设置

    golang学习笔记5 beego项目路由设置 前面我们已经创建了 beego 项目,而且我们也看到它已经运行起来了,那么是如何运行起来的呢?让我们从入口文件先分析起来吧: package main ...

  9. tomcat tomcat-user.xml被还原

    问题:把tomcat——conf中的tomcat-user.xml中的角色.密码修改之后,在eclipse重启Tomcat,设置的Tomcat用户名和密码失效. 解决问题:同时修改tomcat——co ...

  10. HTTPS实战之单向验证和双向验证

    转载自:https://mp.weixin.qq.com/s/UiGEzXoCn3F66NRz_T9crA 原创: 涛哥 coding涛 6月9日 作者对https 解释的入目三分啊 (全文太长,太懒 ...