您的位置:首页 > 运维架构

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

2013-10-17 13:33 190 查看
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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Bash diff