Diff
將更新檔應用於多個不同的名稱
是否可以將更新檔應用於不同的文件名但具有相同的結構。情況是,我有一個具有特定名稱的文件的更新檔,然後由於某種不可避免的原因,該文件被更改並複製到多個文件中,但我必須將更新檔應用於所有這些文件,除此之外我不允許首先將那麼多文件重命名為原始名稱。
這是一個例子:(這只是一個例子,實際情況有點不同)
伺服器-PC
- 原始文件
main.cpp
- 複製並複製到
main_cli.cpp
,main_tmp.cpp
, 和一些main_*.cpp
本地電腦
- 原始文件
main.cpp
- 被修改了
- 創建更新檔(使用
diff -u
)- 獲取更新檔文件
main.patch
所以我必須
main.patch
從local-pc申請到main_*.cpp
server-pc中的所有文件。謝謝你。
您可以指定將更新檔應用於特定文件:
patch -i main.patch main_cli.cpp
然後,循環遍歷所有文件就很簡單了:
for f in main_*.cpp; do patch -i main.patch "$f"; done
例子:
$ diff -u bar foo > patch1 $ cp bar bar2 $ patch < patch1 patching file bar $ patch -i patch1 bar2 patching file bar2 $ diff -s foo bar2 Files foo and bar2 are identical
注意即使更新檔文件指定瞭如何
patch -i patch1 bar2
修補。bar2``bar