diff与patch

1.diff

    diff就是用来比较两个文件之间的区别的,并且是以行为单位比较的,通常用在同一文件或软件的新旧版本区别上。

 

用法: diff [-bBi] from-file to-file

from-file:一个文件名,作为欲比较的文件名

to-file:一个文件名,作为目的比较的文件名

-b:忽略一行中仅有多个空白的区别

-B:忽略空白行的区别

-i:忽略大小写的不同

 

例:

[root@server3 mnt]# cat file1

qwer

asdf

[root@server3 mnt]# cat file2

qwer

asd

zx

[root@server3 mnt]# diff file1 file2

2c2,3       #左边第二行被替换掉了,基准是右边的第二行

< asdf         

---

> asd

> zx

 

 

patch

用法:  patch -pN < patch_file  更新

    patch -R -pN < patch_file 还原

-p:后面的N代表取消几层目录的意思

-R:代表还原,将新的文件还原成原来旧的版本

 

例:

[root@server3 mnt]# diff -Naur file1 file2 >file.patch    #制作不定文件

[root@server3 mnt]# ls

acltest  catfile  file2       kk  ll.lll  passwd  sh

bashrc   file1    file.patch  ks  lvm     raid    ss

[root@server3 mnt]# cat file.patch

--- file1   2019-01-17 20:04:43.362000000 +0800

+++ file2   2019-01-17 20:05:03.101000000 +0800

@@ -1,2 +1,3 @@

 qwer

-asdf

+asd

+zx

[root@server3 mnt]# patch -p0 < file.patch            #更新

patching file file1

[root@server3 mnt]# ll file*

-rw-r--r-- 1 root root  12 Jan 17 20:13 file1

-rw-r--r-- 1 root root  12 Jan 17 20:05 file2

 

[root@server3 mnt]# patch -R -p0 <file.patch          #还原

patching file file1

[root@server3 mnt]# ll file*

-rw-r--r-- 1 root root  10 Jan 17 20:14 file1

-rw-r--r-- 1 root root  12 Jan 17 20:05 file2

 

猜你喜欢

转载自www.cnblogs.com/zhengyipengyou/p/10284440.html