1.创建目录 demo

cd demo
有bug文件a.txt:
当前目录为demo

mkdir -p  old/a/p

vi   old/a/p/foo.txt

old_line_1

old_line_2
bug 修复后的foo.txt:
当前目录为demo

mkdir -p  new/a/p

vi   new/a/p/foo.txt

new_line_1

new_line_2
补丁产生:
当前目录为demo
LC_ALL=C TZ=UTC0 diff -Naur old new > foo.patch
补丁内容:
当前目录为demo
[root@monitor demo]# cat foo.patch
diff -Naur old/a/b/foo.txt new/a/b/foo.txt
--- old/a/b/foo.txt -- ::56.999206666 +
+++ new/a/b/foo.txt -- ::03.160497528 +
@@ -, +, @@
-old_line_1
-old_line_2
+new_line_1
+new_line_2
模拟打补丁:(补丁针对 old/a/b.foo.txt文件打补丁)
当前目录demo

[root@monitor demo]# patch -p0 <foo.patch
patching file old/a/b/foo.txt

当前目录demo

[root@monitor demo]# mkdir xx
[root@monitor demo]# cp foo.patch xx
[root@monitor demo]# patch -p0 < xx/foo.patch
 patching file old/a/b/foo.txt

cd xx

当前目录为demo/xx

[root@monitor xx]# patch -p0 < foo.patch

can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Naur old/a/b/foo.txt new/a/b/foo.txt
|--- old/a/b/foo.txt 2016-05-26 06:57:56.999206666 +0000
|+++ new/a/b/foo.txt 2016-05-26 06:59:03.160497528 +0000

说明在当前目录不能找到  old/a/b/foo.txt (在demo/xx目录下找到文件与目录去补丁

P0:你当前的目录位置,去找old/a/b/foo.txt

p1:你当前目录位置去找a/b/foo.txt,p1会掉old/,到当前目录找a/b/foo.txt

p2:你当前目录位置去找a/b/foo.txt,p2会掉old/a,到当前目录找b/foo.txt

p3:你当前目录位置去找a/b/foo.txt,p3会掉old/a/b,到当前目录找foo.txt
结论:决定补丁如何补:你的补丁所在的目录(你该把补丁放在那里)
P(N)决定去查找要补丁的文件路径,不同的N,会掉某部分路径后,再在当前目录,找已除掉后路径,找文件去补丁
P(N)与当前目录关系很大,与补丁在那里没有关系 patch -d xx P(N) 〈 XX 可以命令行上指定 工作目录

最新文章

  1. div非弹出框半透明遮罩实现全屏幕遮盖css实现
  2. Scalaz(51)- scalaz-stream: 资源使用安全-Resource Safety
  3. js控制精度的加减乘除:js浮点数计算问题
  4. js模板引擎
  5. paip.函数方法回调机制跟java php python c++的实现
  6. JSTL(JSP Standard Tag Library)读书笔记
  7. Java类加载信息的顺序:包括静态代码快、静态类变量、非静态代码快、构造方法、普通方法
  8. socket 发送发送HTTP请求
  9. Android IOS WebRTC 音视频开发总结(六五)-- 给韩国电信巨头做咨询
  10. Win7构造wifi热点【Written By KillerLegend】
  11. hdu 1251 统计难题(trie 树的简单应用)
  12. Search a 2D Matrix leetcode
  13. Java图形界面学习---------简易登录界面
  14. macbook 添加快捷启动服务
  15. 一天带你入门到放弃vue.js(三)
  16. 从零开始单排学设计模式「策略模式」黑铁 II
  17. Nvme固体硬盘Intel750,SM961分别使用一段时间以后对比
  18. C#DateTime好用但不常用的用法
  19. JAVA设计模式详解(六)----------状态模式
  20. List元素删除不会导致越界但有问题的写法

热门文章

  1. wait和waitpid详解
  2. Visual Studio 那些隐藏的调试功能(转)
  3. JAVA bean与XML互转的利器---XStream
  4. poj3264Balanced Lineup(RMQ)
  5. bzoj2716
  6. BZOJ_1601_[Usaco2008_Oct]_灌水_(最小生成树_Kruskal)
  7. SCOI2007排列perm
  8. 深入理解OAuth2.0
  9. WPF学习小记
  10. SAE网站搭建(2)