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