Linux文件比对工具,Linux diff的用法,Linux补丁制作,patch用法

diff通常在于比对同个文件不同版本之间的差异,不同文件没意义,因为差异都会出来

用法

  1. diff [-bBi] from-file to-file

-b忽略一行当中多个空白符号的差异 例如about me  about           me

-B  忽略空白的差异

-i 忽略大小写差异

例 查看当前目录下的一个文件不同版本

  1. [root@localhost paswd]# diff ./pass.old ./pass.new
  2. 4d3
  3. < adm:x:3:4:adm:/var/adm:/sbin/nologin
  4. 6c5
  5. < sync:x:5:0:sync:/sbin:/bin/sync
  6. ---
  7. > abcedfefsd

4d3 左边的第四行被删除了 基准是右边第三行

下面是被删除的文件

6c5 左边文件的第六行被替换了 是右边文件的第五行

被替换内容

diff也可以比较目录下的差异文件

例 比较不同运行级别里的差异

  1. [root@localhost paswd]# diff /etc/rc0.d/ /etc/rc5.d/
  2. Only in /etc/rc0.d: K90network
  3. Only in /etc/rc5.d: S10network

这样会显示出不同文件夹的差异

cmp 以字节为单位比较文件差异

-l将所有不同的都比较出来,默认只会比较第一个不同点

例 比较新旧两个文件

  1. [root@localhost paswd]# cmp ./pass.old ./pass.new
  2. ./pass.old ./pass.new differ: char 106, line 4

第四行第106个字符

利用diff生成补丁文件

再进行比较之后想更新旧文件与新文件的差异 可以依靠补丁文件

  1. diff -Naur from-file to-file > ***.path

例 比较相同文件不同版本 并生成补丁文件

  1. [root@localhost paswd]# diff -Naur ./pass.old ./pass.new > buding.path
  2. [root@localhost paswd]# ls
  3. buding.path pass.new pass.old

利用patch工具更新补丁

  1. patch [-R] [-pN] 补丁文件

-R 还原

-p 更新

N为删除几层目录

例 更新补丁

  1. [root@localhost paswd]# patch -p0 < buding.path
  2. patching file ./pass.old
  1. [root@localhost paswd]# ll ./*
  2. -rw-r--r--. 1 root root 479 Mar 28 17:29 ./buding.path
  3. -rw-r--r--. 1 root root 2246 Mar 28 17:17 ./pass.new
  4. -rw-r--r--. 1 root root 2246 Mar 28 17:35 ./pass.old

两个文件更新成一样了

		</div>

出处:https://www.parted.cn/248.html

posted @ 2021-02-13 18:06  十点书屋  阅读(290)  评论(0)    收藏  举报