校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > linux patch 命令小結(jié)(收藏)

linux patch 命令小結(jié)(收藏)

熱門標(biāo)簽:江西全自動(dòng)外呼系統(tǒng)報(bào)價(jià) 地圖標(biāo)注人員分布 春運(yùn)地圖標(biāo)注app 400的電話一般從哪里辦理 昆明電銷機(jī)器人價(jià)格 怎么用百度地圖標(biāo)注坐標(biāo) 益陽(yáng)400電話申請(qǐng)辦理流程 上海機(jī)器人外呼系統(tǒng)哪家好 梧州防封電銷卡

說(shuō)到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的時(shí)候,基本上只需要使用到diff -Nau 這個(gè)參數(shù),如果比較的是文件夾,還要加上-r參數(shù),所以一般直接使用Naur參數(shù)。

實(shí)驗(yàn)的基本步驟。我打算是建立一個(gè)級(jí)聯(lián)目錄./x/xx/xxx/,在xxx目錄下建立兩個(gè)不同的文件xxx1,xxx2。然后在xxx目錄下用diff命令,建立一個(gè)補(bǔ)丁文件xxx.patch,在xx目錄下建立一個(gè)補(bǔ)丁文件xx.patch,在x目錄下建立一個(gè)補(bǔ)丁文件x.patch。然后在這三個(gè)目錄下實(shí)驗(yàn)。

開(kāi)始實(shí)驗(yàn):建立實(shí)驗(yàn)?zāi)夸?br />

[King@Fedora ~]$ mkdir -pv x/xx/xxx
mkdir: 已創(chuàng)建目錄 “x”
mkdir: 已創(chuàng)建目錄 “x/xx”
mkdir: 已創(chuàng)建目錄 “x/xx/xxx”

進(jìn)入xxx目錄下創(chuàng)建xxx1,xxx2

[King@Fedora ~]$ cd x/xx/xxx
[King@Fedora xxx]$ cat >> xxx1 EOF
> 111111
> 111111
> EOF

[King@Fedora xxx]$ cat >> xxx2 EOF
> 111111
> 222222
> EOF

查看這兩個(gè)文件

[King@Fedora xxx]$ diff -y xxx1 xxx2
111111                                111111
111111                           |    222222

一定要注意:打補(bǔ)丁時(shí)所在的目錄

在xxx目錄下創(chuàng)建補(bǔ)丁文件xxx.patch,并查看。
[King@Fedora xxx]$ diff -Naru xxx1 xxx2 > xxx.patch
[King@Fedora xxx]$ cat xxx.patch
- - - xxx1    2009-12-19 22:28:26.582959182 +0800
+++ xxx2    2009-12-19 22:28:42.798928591 +0800
@@ -1,2 +1,2 @@
  111111
- 111111
+222222

在xx目錄下創(chuàng)建補(bǔ)丁文件xx.patch,并查看

[King@Fedora xxx]$ cd ..
[King@Fedora xx]$ diff -Naru xxx/xxx1 xxx/xxx2 > xx.patch
[King@Fedora xx]$ cat xx.patch
--- xxx/xxx1    2009-12-19 22:28:26.582959182 +0800
+++ xxx/xxx2    2009-12-19 22:28:42.798928591 +0800
@@ -1,2 +1,2 @@
111111
-111111
+222222

在x目錄下創(chuàng)建補(bǔ)丁文件x.patch,并查看

[King@Fedora xx]$ cd ..
[King@Fedora x]$ diff -Nu xx/xxx/xxx1 xx/xxx/xxx2 > x.patch
[King@Fedora x]$ cat x.patch
--- xx/xxx/xxx1    2009-12-19 22:28:26.582959182 +0800
+++ xx/xxx/xxx2    2009-12-19 22:28:42.798928591 +0800
@@ -1,2 +1,2 @@
111111
-111111
+222222

現(xiàn)將patch文件都拷貝到xxx目錄下去。

[King@Fedora x]$ cp x.patch xx/xxx/
[King@Fedora x]$ cp xx/xx.patch xx/xxx/

進(jìn)入xxx目錄開(kāi)始實(shí)驗(yàn)

[King@Fedora x]$ cd xx/xxx
[King@Fedora xxx]$ ls
x.patch  xx.patch  xxx1  xxx2  xxx.patch

[King@Fedora xxx]$ patch-p0xxx.patch  #用第二個(gè)的 補(bǔ)丁 修改 第一個(gè)文件
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
222222
[King@Fedora xxx]$ patch -RE xxx.patch #用第一個(gè)的 補(bǔ)丁 修改 第一個(gè)文件
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
111111

[King@Fedora xxx]$ patch -p1 xx.patch
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
222222
[King@Fedora xxx]$ patch -RE xxx.patch
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
111111

[King@Fedora xxx]$ patch -p2 x.patch
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
222222
[King@Fedora xxx]$ patch -RE x.patch
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
111111

--------------------

[King@Fedora xx]$ patch-p0 xx.patch  # 用第二個(gè)的 補(bǔ)丁 修改 第一個(gè)文件
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
222222
[King@Fedora xxx]$ patch -RE xxx.patch #用第一個(gè)的 補(bǔ)丁 修改 第一個(gè)文件
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
111111

[King@Fedora xxx]$ patch -p1 x.patch
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
222222
[King@Fedora xxx]$ patch -RE xxx.patch
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
111111
----------------------------------
[King@Fedora x]$ patch-p0x.patch  # 用第二個(gè)的 補(bǔ)丁 修改 第一個(gè)文件
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
222222
[King@Fedora xxx]$ patch -RE xxx.patch #用第一個(gè)的 補(bǔ)丁 修改 第一個(gè)文件
patching file xxx1
[King@Fedora xxx]$ cat xxx1
111111
111111

這里唯一需要說(shuō)明的是p0的含義,因?yàn)樵趚.patch補(bǔ)丁文件里的路徑信息是這樣的:
--- xx/xxx/xxx1   

p表示跳過(guò)幾級(jí)目錄,因?yàn)槭窃趚目錄下使用的patch命令,xx目錄就在x目錄下,所以不必跳過(guò)任何目錄,而應(yīng)該使用--- xx/xxx/xxx1   完整路徑,所以此時(shí)使用的是p0。

注意:patch -p后面是不能帶負(fù)數(shù) 的不使用p參數(shù)的時(shí)候,patch命令會(huì) 忽略 任何目錄直接使用文件

[King@Fedorax]$ patch x/xx/xxx/xxx1 x.patch  # 用補(bǔ)丁x.patch 直接修改 文件xxx1,因?yàn)闆](méi)有用p參數(shù),所以 會(huì) 忽略掉補(bǔ)丁文件里的 所有目錄。

作為程序員,了解diffpatch命令是非常必要的。比如說(shuō)我們發(fā)現(xiàn)某個(gè)項(xiàng)目有bug代碼,而自己又沒(méi)有提交權(quán)限,那么此時(shí)最合適的解決方法就是用diff命令做一個(gè)補(bǔ)丁發(fā)給項(xiàng)目成員。項(xiàng)目成員通過(guò)patch命令可以立刻知道你的意圖。有人會(huì)說(shuō)直接傳一個(gè)新文件不是更簡(jiǎn)單?不要忘了,一個(gè)patch文件尺寸更小傳輸更快,而且可以明顯的看到都做了哪些修改。

保證當(dāng)前目錄是demo名錄:

# mkdir demo
# cd demo

先模擬一個(gè)項(xiàng)目目錄old:

# mkdir -p old/a/b
# vi old/a/b/foo.txt
old_line_1
old_line_2

假設(shè)我們發(fā)現(xiàn)項(xiàng)目old有bug代碼,下面我們先拷貝一個(gè)新目錄new,并在此修改bug代碼:

# cp -r old new
# vi new/a/b/foo.txt
new_line_1
new_line_2

保證old和new兩個(gè)目錄都在當(dāng)前目錄下,下面就可以使用diff命令了,不要使用絕對(duì)路徑,而應(yīng)該使用相對(duì)路徑,至于原因,看到文章結(jié)尾你就清楚了:

# LC_ALL=C TZ=UTC0 diff -Naur old new > foo.patch

如果不在意字符集,時(shí)差等問(wèn)題,也可以省略LC_ALL=C TZ=UTC0環(huán)境變量:

# diff -Naur old new > foo.patch

內(nèi)容來(lái)自Linuxren.net

其中-Naur參數(shù)屬于固定用法,大多數(shù)時(shí)候,在使用diff命令時(shí)搭配這個(gè)參數(shù)就可以了。

大概瀏覽一下補(bǔ)丁文件:

# cat foo.patch
diff -Naur old/a/b/foo.txt new/a/b/foo.txt
--- old/a/b/foo.txt     2009-12-07 20:40:07.000000000 +0800
+++ new/a/b/foo.txt     2009-12-07 20:41:51.000000000 +0800
@@ -1,2 +1,2 @@
-old_line_1
-old_line_2
+new_line_1
+new_line_2

加減號(hào)后面的內(nèi)容是有用的內(nèi)容,其他的內(nèi)容是方便你查閱的相關(guān)信息內(nèi)容,補(bǔ)丁制作完成。

此時(shí)的文件目錄結(jié)構(gòu)大概如下所示:

#tree
demo
|-- old
|   `-- a
|       `-- b
|           `-- foo.txt
|-- new
|   `-- a
|       `-- b
|           `-- foo.txt
-- foo.patch

下面看看如何使用patch來(lái)應(yīng)用補(bǔ)丁,要注意的是當(dāng)前目錄是demo,試試下面命令:

# patch -p0 foo.patch
patching file old/a/b/foo.txt

這里唯一需要說(shuō)明的是p0的含義,因?yàn)樵趂oo.patch補(bǔ)丁文件里的路徑信息是這樣的:

--- old/a/b/foo.txt

p表示跳過(guò)幾級(jí)目錄,因?yàn)槭窃赿emo目錄下使用的patch命令,old目錄就在demo目錄下,所以不必跳過(guò)任何目錄,而應(yīng)該使用old/a/b/foo.txt完整路徑,所以此時(shí)使用的是p0。

查看一下目標(biāo)文件,你會(huì)發(fā)現(xiàn)內(nèi)容已經(jīng)修改成新的了:

# cat old/a/b/foo.txt
new_line_1
new_line_2

此時(shí)如果你再次使用patch命令,系統(tǒng)會(huì)問(wèn)你是否想還原,輸入y 還原
# patch -p0 foo.patch
patching file old/a/b/foo.txt
Reversed (or previously applied) patch detected!  Assume -R? [n] y

查看一下目標(biāo)文件,你會(huì)發(fā)現(xiàn)內(nèi)容已經(jīng)還原成舊的了:

# cat old/a/b/foo.txt
old_line_1
old_line_2

如果你想嚴(yán)格指定是 應(yīng)用補(bǔ)丁 可以使用下面命令(就是增加N參數(shù)):

# patch -Np0 foo.patch

如果你想嚴(yán)格指定是 還原補(bǔ)丁 可以使用下面命令(就是增加R參數(shù)):

# patch -Rp0 foo.patch

注釋:在本例中,每次應(yīng)用補(bǔ)丁后,自己還原補(bǔ)丁,以備后用繼續(xù)試驗(yàn),我就不多說(shuō)了。

看到這里如果你對(duì)patch的p參數(shù)還不太清楚的話,接著往下看,我們改變一下當(dāng)前路徑:

# cd old

此時(shí)就應(yīng)該是p1,而不是p0了,引用foo.patch文件的路徑也要相對(duì)變一下,因?yàn)楫?dāng)前目錄已經(jīng)是old了: Linuxren.net

# patch -p1 ../foo.patch
patching file a/b/foo.txt

因?yàn)?strong>此時(shí)我們是在old下使用patch命令,和a子目錄平級(jí),而補(bǔ)丁文件foo.patch里的路徑聲明是:

--- old/a/b/foo.txt

也就是說(shuō)第一個(gè)斜線左邊的old/部分已經(jīng)沒(méi)用了,這就是p1的含義!

繼續(xù)往深度變換路徑,依次測(cè)試使用p2,p3參數(shù):

# cd a
# patch -p2 ../../foo.patch
patching file b/foo.txt
# cd b
# patch -p3 ../../../foo.patch
patching file foo.txt

在本例中,p3已經(jīng)是最深目錄了,此時(shí)可以省略p參數(shù):

# patch ../../../foo.patch
patching file foo.txt

也就是說(shuō),不使用p參數(shù)的時(shí)候,patch命令會(huì) 忽略 任何目錄直接使用文件

下面接著文章前面說(shuō)的為什么使用diff命令時(shí)最好不要使用絕對(duì)路徑,而應(yīng)該使用相對(duì)路徑?

答:如果你在使用diff的時(shí)候使用的是絕對(duì)路徑,那么補(bǔ)丁文件里的文件路徑信息會(huì)類似下面的樣子:

--- /a/b/c/d/e/f/g/bar.txt

如此一來(lái),當(dāng)別人想應(yīng)用你的補(bǔ)丁時(shí),因?yàn)槟夸浗Y(jié)構(gòu)肯定有差異,所以就不得不費(fèi)力判斷到底使用p幾。這樣一來(lái)就很容易出錯(cuò),相反,如果使用相對(duì)路徑的話,大多數(shù)時(shí)候,p0或者p1就足夠了,不易出錯(cuò)。

以上所述是小編給大家介紹的linux patch 命令小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • 詳解Linux patch命令參數(shù)及用法

標(biāo)簽:河南 贛州 北京 新疆 九江 亳州 惠州 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux patch 命令小結(jié)(收藏)》,本文關(guān)鍵詞  linux,patch,命令,小結(jié),收藏,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux patch 命令小結(jié)(收藏)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于linux patch 命令小結(jié)(收藏)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久久久久99久久久精品网站| 国产精品久久影院| 日本一区二区免费在线观看视频 | 亚洲午夜一区二区三区| 欧洲在线/亚洲| 午夜精品久久久久久久99水蜜桃 | 中文字幕欧美三区| 不卡的看片网站| 亚洲女爱视频在线| 日韩欧美黄色影院| 国产91精品久久久久久久网曝门| 中文字幕日韩精品一区 | 欧美四级电影在线观看| 欧美a级理论片| 国产精品每日更新在线播放网址| 色综合久久中文综合久久97| 久久99精品久久久久久| 亚洲欧美一区二区三区极速播放 | 蜜芽一区二区三区| 国产精品三级视频| 欧美亚洲高清一区二区三区不卡| 久久99久国产精品黄毛片色诱| 国产欧美一区二区精品久导航 | 国产亚洲美州欧州综合国| 91免费版在线看| 麻豆精品视频在线观看免费| 中文字幕一区在线观看视频| 91超碰这里只有精品国产| 粉嫩一区二区三区性色av| 亚洲一区二区三区激情| 中文字幕av在线一区二区三区| 欧美日本国产视频| 色噜噜狠狠色综合欧洲selulu| 国产主播一区二区三区| 丝袜美腿亚洲综合| 亚洲综合偷拍欧美一区色| 337p日本欧洲亚洲大胆色噜噜| 欧美影视一区二区三区| 国产.欧美.日韩| 国产美女久久久久| 蜜臀va亚洲va欧美va天堂| 日韩中文字幕1| 亚洲动漫第一页| 一区精品在线播放| 国产精品天天看| 久久久精品一品道一区| 精品国精品国产| 欧美日韩亚洲另类| 欧美视频在线一区| 91国产成人在线| 在线亚洲精品福利网址导航| 99久久精品国产一区二区三区| 国产福利91精品一区二区三区| 麻豆国产精品视频| 蜜臀av在线播放一区二区三区| 日韩中文字幕91| 午夜精品久久久久影视| 丝瓜av网站精品一区二区| 亚洲成人tv网| 蜜桃在线一区二区三区| 久久国产三级精品| 国产成人午夜精品5599| 国产成人在线网站| 91一区在线观看| 欧美性猛交xxxx乱大交退制版| 欧美中文字幕一区二区三区| 欧美综合亚洲图片综合区| 欧美日韩一区小说| 日韩欧美一二三区| 久久综合资源网| 亚洲欧美在线aaa| 亚洲一区二区三区四区在线| 亚洲永久免费av| 美国毛片一区二区| 成人做爰69片免费看网站| 国产91在线看| 欧美日韩在线精品一区二区三区激情 | 激情六月婷婷久久| 美女在线一区二区| 国产麻豆91精品| 日本韩国欧美三级| 69堂精品视频| 国产日韩欧美电影| 偷拍亚洲欧洲综合| 国产一区二区美女| 欧美亚州韩日在线看免费版国语版| 欧美在线一二三| 久久久久久久久蜜桃| 一区二区三区在线观看国产 | 国产成人a级片| 在线精品观看国产| 日韩欧美的一区| 亚洲精品视频在线看| 五月天国产精品| 懂色av中文字幕一区二区三区 | xf在线a精品一区二区视频网站| 国产欧美一区二区三区网站 | 国产精品久久综合| 男女性色大片免费观看一区二区| 岛国av在线一区| 欧美日韩一区二区三区在线看| 26uuu国产一区二区三区| 亚洲h在线观看| 91日韩精品一区| 国产香蕉久久精品综合网| 亚洲国产aⅴ天堂久久| 蜜桃视频一区二区| 一本到不卡免费一区二区| 久久蜜桃一区二区| 亚洲成人在线网站| 99久久国产综合精品女不卡| 日韩亚洲欧美一区二区三区| 18欧美乱大交hd1984| 高清免费成人av| 国产亚洲成aⅴ人片在线观看| 美女视频黄久久| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲国产激情av| 国产精品一区二区在线看| 日韩你懂的在线观看| 日韩专区一卡二卡| 欧美一区二区三区四区高清| 亚洲激情校园春色| 91福利在线观看| 一区二区三区不卡视频| 91年精品国产| 一区二区三区四区不卡视频| 91亚洲精品一区二区乱码| 中文字幕免费在线观看视频一区| 国产精品1区2区| 国产日韩欧美综合在线| 国内精品免费在线观看| 久久久91精品国产一区二区精品 | 欧美在线一二三四区| 一个色在线综合| 欧美色涩在线第一页| 午夜亚洲福利老司机| 欧美高清视频一二三区| 日本中文字幕不卡| 欧美xxxxx牲另类人与| 国内精品久久久久影院一蜜桃| 久久综合九色综合欧美就去吻| 日本成人在线看| 久久综合色鬼综合色| 成人手机在线视频| 亚洲夂夂婷婷色拍ww47| 日韩欧美亚洲国产精品字幕久久久| 奇米影视在线99精品| 久久久91精品国产一区二区三区| 成人激情黄色小说| 午夜精品久久久久久久久久久 | 午夜欧美一区二区三区在线播放| 欧美一级片在线| 福利一区二区在线观看| 亚洲一区二区三区自拍| 欧美sm极限捆绑bd| www.成人网.com| 久久精品国产精品亚洲精品| 中文字幕乱码日本亚洲一区二区| 一本到不卡精品视频在线观看| 蜜桃一区二区三区四区| 3d成人h动漫网站入口| 岛国精品在线观看| 午夜伊人狠狠久久| 国产精品视频免费看| 欧美午夜精品久久久久久超碰 | 欧美一区二区三区日韩| 成人理论电影网| 毛片av一区二区三区| 国产精品午夜在线观看| 欧美精品精品一区| 粉嫩av一区二区三区| 偷偷要91色婷婷| 成人免费一区二区三区视频| 欧美第一区第二区| 色成年激情久久综合| 韩国av一区二区三区| 亚洲第一在线综合网站| 中文字幕欧美激情一区| 日韩你懂的在线观看| 欧美日韩在线播放一区| av一区二区三区在线| 裸体在线国模精品偷拍| 亚洲免费观看高清在线观看| 精品三级在线看| 91精品国产福利在线观看 | 中文字幕在线不卡| 2023国产一二三区日本精品2022| 在线免费视频一区二区| 成人午夜激情视频| 狠狠色丁香婷综合久久| 日日摸夜夜添夜夜添国产精品| 国产精品久久久爽爽爽麻豆色哟哟| 日韩亚洲欧美在线| 777欧美精品| 欧美性猛交xxxxxx富婆| 91视频com| 99国产精品一区| 91香蕉国产在线观看软件| 国产999精品久久久久久绿帽|