diff与patch

1.diffbash

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

 

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

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

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

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

-B:忽略空白行的区别di

-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

相关文章
相关标签/搜索