ファイル名は異なりますが、構造は同じパッチを適用できますか?特定の名前を持つファイルへのパッチがありますが、何らかの理由でファイルが変更されて複数のファイルにコピーされることがあります。まず、多くのファイルの名前を元の名前に変更することはできません。
例は次のとおりです。 (これは単なる例であり、実際の状況は少し異なります。)
サーバーコンピュータ
- オリジナルファイル
main.cpp
main_cli.cpp
、main_tmp.cpp
および一部にコピーしてコピーmain_*.cpp
ローカルコンピュータ
- オリジナルファイル
main.cpp
- 修正されました
- パッチの作成(使用
diff -u
) - パッチファイルの取得
main.patch
main.patch
したがって、ローカルPCからmain_*.cpp
サーバーPC上のすべてのファイルに適用する必要があります。
ありがとうございます。
答え1
パッチが特定のファイルに適用されることを指定できます。
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