Linux patchコマンド
Linux コマンド全書
Linux patchコマンドはファイルを修復するために使用されます。
patchコマンドは、ユーザーが設定する修復ファイルを使用して、元のファイルを変更、更新する方法を提供します。一度にファイルを1つだけ変更する場合、コマンドリストで順次実行することができます。修復ファイルの方法を組み合わせることで、一度に多くのファイルを修復することができ、これもLinuxシステムのコアのアップグレード方法の一つです。
文法
patch [-bceEflnNRstTuvZ][-B <バックアップ先頭文字列>][-d <作業ディレクトリ>][-D <シンボル>][-F <監視列数>][-g <制御値>][-i <修正ファイル>][-o <出力ファイル>][-p <剥離レベル>][-r <拒否ファイル>][-V <バックアップ方法>][-Y <バックアップ先頭文字列>][-z <バックアップ後尾文字列>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][元のファイル <修正ファイル>] または path [-p <剥離レベル>] < [修正ファイル]
パラメータ:
- -bまたは--backup すべての元のファイルをバックアップします。
- -B<バックアップ先頭文字列>または--prefix=<バックアップ先頭文字列> ファイルをバックアップする際に、ファイル名の前に付ける文字列を設定します。この文字列はパス名であってもかまいません。
- -cまたは--context 修正データを関連的な差分として解釈します。
- -d<作業ディレクトリ>または--directory=<作業ディレクトリ> 作業ディレクトリを設定します。
- -D<シンボル>または--ifdef=<シンボル> 指定されたシンボルで変更された場所をマークします。
- -eまたは--ed 修正データをedコマンドで使用できる説明ファイルとして解釈します。
- -Eまたは--remove-empty-files 修正後の出力ファイルが空の内容の場合、このファイルを削除します。
- -fまたは--force このパラメータの効果は「"-t"パラメータと似ていますが、修正データのバージョンを新しいバージョンと仮定します。
- -F<監視列数>または--fuzz<監視列数> 監視列数の最大値を設定します。
- -g<制御値>または--get=<制御値> RSCまたはSCCSで修正作業を制御するために制御値を設定します。
- -i<修正ファイル>または--input=<修正ファイル> 指定された修正ファイルを読み取ります。
- -lまたは--ignore-whitespace 修正データと入力データのタブやスペースの違いを無視します。
- -nまたは--normal 修正データを一般的な差分として解釈します。
- -Nまたは--forward 修正されたデータのバージョンが元のファイルのバージョンより古い場合または、このバージョンの修正データが既に使用されている場合を無視します。
- -o<出力ファイル>または--output=<出力ファイル> 出力ファイルの名前を設定します。修正されたファイルはこの名前で保存されます。
- -p<剥離レベル>または--strip=<剥離レベル> 剥離したい層のパス名を設定します。
- -f<拒否ファイル>または--reject-file=<拒否ファイル> 拒否された修正情報を保存するファイル名を設定します。デフォルトのファイル名は.rejです。
- -Rまたは--reverse 修正データが新旧ファイルの交換位置から生成されたと仮定します。
- -sまたは--quietまたは--silent エラーが発生しない限り、コマンドの実行プロセスを表示しません。
- -tまたは--batch エラーを自動的にスキップし、何も質問しないでください。
- -Tまたは--set-time このパラメータの効果は指定"-Zパラメータと同様ですが、ローカル時間を主に使用します。
- -uまたは--unified 修正データを統一化された差分に解釈します。
- -vまたは--version バージョン情報を表示します。
- -V<バックアップ方法>または--version-control=<バックアップ方法> 「-bパラメータでターゲットファイルのバックアップ後に、バックアップファイルの文字尾にバックアップ文字列が追加されます。この文字列はただで-zパラメータが変更され、「-Vパラメータで異なるバックアップ方法を指定すると、異なるバックアップ文字尾の文字列も生成されます。
- -Y<バックアップ文字頭文字列>または--basename-prefix=--<バックアップ文字頭文字列> ファイルをバックアップする際に、ファイル基本名の先頭に追加する文字列を設定します。
- -z<バックアップ文字尾文字列>または--suffix=<バックアップ文字尾文字列> このパラメータの効果は指定"-Bパラメータと同様ですが、修正作業で使用されるパスとファイル名がsrc/linux/fs/super.cに「backup/「文字列の後、ファイルsuper.cは「backup」/src/linux/fs/backupディレクトリに。
- -Zまたは--set-utc 修正されたファイルの変更、アクセス時間をUTCに設定します。
- --backup-if-mismatch 修正データが完全に一致していない場合、またはバックアップファイルを指定していない場合、ファイルをバックアップします。
- --binary データを読み書きする際に標準出力デバイスを通さずに二進模式で行います。
- --help オンラインヘルプ。
- --nobackup-if-mismatch 修正データが完全に一致していない場合、またはバックアップファイルを指定していない場合、ファイルをバックアップしないでください。
- --verbose コマンドの実行プロセスを詳細に表示。
オンラインサンプル
「patch」コマンドを使用してファイル「testfile1「アップグレードを行う場合、アップグレード差分ファイルは「testfile.patch」で、以下のコマンドを入力します:
$ patch -p0 testfile1 testfile.patch #差分プログラムを使用してファイルをアップグレード
このコマンドを使用する前に、まず「cat」コマンドを使用して「testfile1「の内容。必要な修正やアップグレードを行うファイルと元のファイルの間で「diff」コマンドを使用して差分ファイルを生成することができます。具体的な操作は以下の通りです:
$ cat testfile1 #testfileを確認1の内容
Hello,This is the firstfile!
$ cat testfile2 #testfileを確認2の内容
Hello,Thisisthesecondfile!
$ diff testfile1 testfile2 #2つのファイルを比較
1c1
<Hello,Thisisthefirstfile!
---
>Hello,Thisisthesecondfile!
#比較結果をtetsfile.patchファイルに保存
$ diff testfile1 testfile2>testfile.patch
$ cat testfile.patch #パッチパックの内容を確認
1c1
<Hello,Thisisthefirstfile!
---
>Hello,Thisisthesecondfile!
#パッチパックを使用してtestfileをアップグレード1ファイル
$ patch -p0 testfile1 testfile.patch
ファイル testfile にパッチを適用1
$cat testfile1 #testfileを再び確認1の内容
#testfile1ファイルはtestfileと同じ内容に変更されました2同じ内容
Hello,This is the secondfile!
注意:上記のコマンドコードでは、"$ diff testfile1 testfile2>testfile.patch"で使用される演算子">"は、この演算子の左側のファイルデータを右側に指されるファイルに書き込むことを示します。ここでは、2つのファイルを比較した結果をファイル"testfile.patch"に書き込むことを意味します。
Linux コマンド全書