次: , 前: Multiple Patches, 上: Merging with patch


10.7 他のディレクトリでパッチを適用する

-d directory--directory=directoryオプショ ンをpatchに渡すと,ディレクトリdirectoryを,パッチファイ ル内のファイル名と,それ以外の(-B-oのような)オプショ ンの引数として与えられているファイル名の両方を解読するカレントディレクト リにしにします.例えば,メールを読むプログラムで,/usr/src/emacs ディレクトリに,以下のようなパッチを含むメッセージから直接ファイルにパッ チをあてることが可能です.

     | patch -d /usr/src/emacs

パッチで与えられるファイル名にディレクトリが前置されてはいるものの,パッ チで与えられているディレクトリとは異なるディレクトリにファイルを保持した いときもあります.この状況では,ファイル名をnumber個切り取って設定 するために,-pnumber--strip=numberオプショ ンを使用することが可能です.切り取り数は,ファイル名の最初から切り取る, ディレクトリ名が間にはいっている,スラッシュの数をpatchに伝え ます.一つ以上の隣接したスラッシュは,単一のスラッシュとして数えられます. デフォルトで,patchはすべての前置したディレクトリを切捨て,ファ イルのベース名だけを残します.

例えば,パッチファイルのファイル名が/gnu/src/emacs/etc/NEWSだと仮 定します.-p0を使用すると,ファイル名は編集されずに全部与えられ, -p1では,gnu/src/emacs/etc/NEWS(前置されたスラッシュが無 い)が与えられ,-p4ではetc/NEWSが与えられ,-pを 全く指定しなければ,NEWSが与えられます.

patchはカレントディレクトリで,(スラッシュを切り捨てた後)それ ぞれのファイルを探し,-d directoryを使用した場合はそのディ レクトリで探します.