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

相關文章
相關標籤/搜索