patch
テキスト処理
書き方
patch -p1 < [file.patch]diff を実際のファイルに当てます。-p はパッチ内の経路を何段落とすかを決め、git のパッチは a/ b/ の接頭辞があるため -p1 が必要です。
よく使うオプション
| オプション | 意味 |
|---|---|
| -pN | Strip N leading path components; git diffs need -p1 |
| -R | Apply the patch backwards to undo it |
| --dry-run | Test whether it applies and change nothing |
| -i | Read the patch from a file instead of standard input |
| -b | Keep a backup of every file it changes |
例
patch -p1 < fix.patchApplies a git-style patch from the repo root.
patch -p1 -R < fix.patchUndoes it again.
patch -p1 --dry-run < fix.patchChecks it applies cleanly first.
パイプでつないで使うのが本来の形です。ひとつで全部やるより、三つつないだ方が短くなります。
読み方
- 角括弧 [ ] は省いてよい部分です。
- 三点 … は複数並べられるという意味です。
- オプションは大文字小文字を区別します — -r と -R が別物のコマンドもあります。
よくある質問
Q. patch は何をしますか。
diff を実際のファイルに当てます。-p はパッチ内の経路を何段落とすかを決め、git のパッチは a/ b/ の接頭辞があるため -p1 が必要です。
Q. どう打ちますか。
patch -p1 < [file.patch] — 角括弧は省いてよい部分です。
Q. よく使うオプションはいくつですか。
ここにまとめたのは5個です。全部は man patch にあります。このコマンドはテキスト処理の仲間です。
関連するコマンド
man ページ: man patch