看到了吗?第一个发现的不同点在第四行,而且字½数是在第
106
个字½处!这个
cmp
也可以用
来比对
binary
啦!
^_^
.
patch
patch
这个指令与
diff
可是有密不可分的关系啊!我们前面提到,
diff
可以用来分辨两个版本之间的
差异,
举例来说,刚刚我们所½立的
passwd.old
及
passwd.new
之间就是两个不同版本的文件。
那
么,如果要『升级』呢?就是『
½旧的文件升级成为新的文件
』时,应该要怎么做呢?
其实也不难
啦!就是『先比½先旧版本的差异,并½差异档制作成为补丁档,再由补丁档更新旧文件』即可。
举
例来说,我们可以这样做测试:
范例一:以
/tmp/testpw
内
的
passwd.old
与
passwd.new
制作
补
丁
文件
[dmtsai@study testpw]$
diff
-
Naur passwd.old passwd.new > passwd.patch
[dmtsai@study testpw]$
cat
passwd.patch
---
passwd.old 2015
-
07
-
14 22:37:43.322535054 +0800
<==
新
旧
文件
的信息
+++ passwd.new 2015
-
07
-
14 22:38:03.010535054 +0800
@@
-
1,9 +1,8 @@
<==
新
旧
文件
要修改
数
据的½定范
围
,
旧档
在
1
-
9
行,新檔在
1
-
8
行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
-
adm:x:3:4:adm:/var/adm:/sbin/nologin
<==
左
侧
文件
删
除
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
-
sync:x:5:0:sync:/sbin:/bin/sync
<==
左
侧
文件
删
除
+no six line
<==
右
侧
新
档
加入
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
一般来说,使用
diff
制作出来的比½文件通常使用扩展名为
.patch
啰。至于内容就如同上面½绍的
样子。
基本上就是以行为单位,看看哪边有一样与不一样的,找到一样的地方,然后½不一样的地
方取代掉!
以上面表格为例,新文件看到
-
会删除,看到
+
会加入!好了,那么如何½旧的文件
更新成为新的内容呢?
就是½
passwd.old
改成与
passwd.new
相同!可以这样做:
#
因
为
CentOS 7
预设没
有安
装
patch
这个软
件,因此得要依据之前½
绍
的方式
来
安
装
一下
软
件!
#
请记
得拿出原本光
盘
并放入光
驱当
中,
这时
才能
够
使用底下的方式
来
安
装软
件!
[dmtsai@study ~]$
su
-
[root@study ~]#
mount /dev/sr0 /mnt
[root@study ~]#
rpm
-
ivh
/mnt/Packages/patch
-
2.*
[root@study ~]#
umount /mnt
[root@study ~]#
exit
#
透
过
上述的方式可以安
装
好所需要的
软
件,且
无须
上网。½下
来让
我
们开
始操作
patch
啰
!
[dmtsai@study ~]$
patch
-
pN < patch_file
<==
更新
[dmtsai@study ~]$
patch
-
R
-
pN < patch_file
<==
还
原
选项
与
参数
: