《鸟哥的Linux私房菜》 368,patch 命令。
1.patch用法
patch -p 数字 <patch_file
2.patch命令示例
cd u-boot-1.1.6/ //进入原文件目录 patch -p1 <../u-boot-1.1.6_jz2440.patach //“p” 表示去掉补丁文件里路径的第几部分。"1",表示去掉第1个 //“<” 指补丁文件位置 // “../” 表示返回上一个目录,因为这补丁文件和原文件在同一目录下
这里我觉得鸟哥说的比网上说的好,见下:
特别留意那个『 -p 数字』,那是与 patch_file 里面列出的文件名有关的信息。假如在 patch_file 第一行写的是这样:
*** /home/guest/example/expatch.old
那么当我下达『 patch -p0 < patch_file 』时,则更新的文件是『 /home/guest/example/expatch.old 』, 如果『 patch -p1 < patch_file』,则更新的文件为『home/guest/example/expatch.old』,如果『patch -p4 < patch_file』则更新『expatch.old』,也就是说, -pxx 那个 xx 代表『拿掉几个斜线(/)』的意思!这 样可以理解了吗? 好了,根据刚刚上头的资料,我们可以发现比较的文件是在 main-0.1/xxx 与 main-0.2/xxx ,所以说,如果你是在 main-0.1 底下,并且想要处理更新时,就得要拿掉一个目录 (因 为并没有 main-0.2 的目录存在, 我们是在当前的目录进行更新的!),因此使用的是 -p1 才对喔!