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