打补丁⽂件时候patch-p1命令的含义
虚空藏菩萨其实patch在具体使⽤的时候是不⽤指定原⽂件的,因为补丁⽂件中都已经记载了原⽂件的路径和名称。patch⾜够聪明可以认出来。但是有时候会有点⼩问题。⽐如⼀般对两个⽬录diff的时候可能已经包含了原⽬录的名字,但是我们打补丁的时候会进⼊到⽬录中再使⽤patch,着个时候就需要你告诉 patch命令怎么处理补丁⽂件中的路径。可以利⽤-pn开关,告诉patch命令忽略的路径分隔符的个数。
举例如下:
A⽂件在 DIR_A下,修改后的B⽂件在DIR_B下,⼀般DIR_A和DIR_B在同⼀级⽬录。我们为了对整个⽬录下的所有⽂件⼀次性diff,我们⼀般会到DIR_A和DIR_B的⽗⽬录下执⾏以下命令
diff -rc DIR_A DIR_B > C
男主一直做的日剧动漫
怎么理解上⾯这段话呢?我们来看下⾯这个语句,a/bin/minindn是⼀个⽬录,下⾯有很多⽂件,b/bin/minindn也是⼀个⽬录,下⾯有很多⽂件
diff --git a/bin/minindn b/bin/minindn
这时候,我们就会在bin⽬录下,进⾏diff动作,来以此达到对minindn整个⽬录下的所有⽂件的⼀次性diff。
这个时候补丁⽂件C中会记录了原始⽂件的路径为 DIR_A/A
现在另⼀个⽤户得到了A⽂件和C⽂件,其中A⽂件所在的⽬录也是DIR_A。⼀般,他会⽐较喜欢在DIR_A⽬录下⾯进⾏patch操作,它会执⾏
patch < C
但是这个时候patch分析C⽂件中的记录,认为原始⽂件是./DIR_A/A,但实际上是./A,此时patch会不到原始⽂件。为了避免这种情况我们可以使⽤-p1参数如下
考公务员的要求和条件patch -p1 < C
此时,patch会忽略掉第1个”/”之前的内容,认为原始⽂件是 ./A,这样就正确了。
小阿七最后有以下⼏点注意:
1. ⼀次打多个patch的话,⼀般这些patch有先后顺序,得按次序打才⾏。
2. 在patch之前不要对原⽂件进⾏任何修改
王岳伦父亲3. 如果patch中记录的原始⽂件和你得到的原始⽂件版本不匹配(很容易出现),那么你可以尝试使⽤pa
tch, 如果幸运的话,可以成功。⼤部分情况下,会有不匹配的情况,此时patch
会⽣成rej⽂件,记录失败的地⽅,你可以⼿⼯修改。
>白展堂谁演的