Diff 和 Patch 的簡易操作使用筆記 (copied)

来源:互联网 发布:黑暗之魂3画面设置优化 编辑:程序博客网 时间:2024/05/16 11:16
Diff 和 Patch 的簡易操作使用筆記
發表於 2013 年 08 月 12 日 由 Tsung


diff + patch 很方便, 在此紀錄幾個基本用法:


    diff 產生 patch 檔
    將 patch 寫入
    移除此次 patch 的內容


Diff 和 Patch 的簡易操作使用筆記


    diff -Naur file1 file2 > project.patch # Diff 產生 patch, 檔案, 資料夾都可以
    # 或 diff -Naur dir1 dir2 > project.patch # Diff 產生 patch
    patch -p0 < project.patch # 將 patch 寫入
    patch -p0 < project.patch # 再做一次會詢問是否自動加上 -R 來移除之前 patch 寫入的(恢復回上一步的資料)
    patch -R -p0 < project.patch # 移除回復修改 (同上一步驟, 此次就是確定要移除上次的 project.patch)


兩個資料夾(檔案也可以使用此步驟) diff, patch 案例


    先建立 dir1, dir2 (一樣內容), 修改 dir2, 然後產生 diff 後, patch 寫回 dir1.
    mkdir dir1
    touch dir1/a.txt
    touch dir1/b.txt
    mkdir dir2
    cp dir1/* dir2/
    vim dir2/a.txt # 隨便寫
    vim dir2/b.txt # 隨便寫
    # 產生 diff
    diff -Naur dir1 dir2 > dir.patch # Diff 產生 patch
    patch -p0 < dir.patch # dir1 就會寫入此 patch, 此時與 dir2 會是相同的內容
    patch -p0 < dir.patch # 會詢問是否要移除之前 patch 寫入的, 可以先 'n' 都否決, 用下個指令恢復
    patch -R -p0 < dir.patch # 移除回復修改 (同上一步驟, 此次就是確定要移除 dir.patch 的內容)


兩個檔案 diff, patch 案例


    diff -urN file1 file2 > f.patch
    patch < f.patch # 輸入要 patch 的檔案位置 (假設輸入 file1, 此時 file1 = file2)

    patch < f.patch # 輸入要 patch 的檔案位置 (假設輸入 file1, 此時會詢問是否要移除 f.patch 的內容)


转自:

http://blog.longwin.com.tw/2013/08/linux-diff-patch-learn-note-2013/

原创粉丝点击