Comando patch di Linux
Linux 命令大全
Il comando patch di Linux viene utilizzato per riparare file.
Il comando patch permette agli utenti di modificare e aggiornare i file originali utilizzando il metodo di configurazione dei file di riparazione. Se si desidera modificare un file alla volta, è possibile eseguire l'ordine nell'elenco dei comandi in sequenza. Se si utilizza il metodo dei file di riparazione, è possibile riparare molti file in una volta, che è anche uno dei metodi di aggiornamento del kernel del sistema Linux.
Sintassi
patch [-bceEflnNRstTuvZ][-B <备份字首字符串>][-d <工作目录>][-D <标示符号>][-F <监别列数>][-g <控制数值>][-i <修补文件>][-o <输出文件>][-p <剥离层级>][-r <拒绝文件>][-V <备份方式>][-Y <备份字首字符串>][-z <备份字尾字符串>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件 <修补文件>] o path [-p <剥离层级>] < [修补文件]
parametri:
- -b o --backup: Backup di ogni file originale.
- -B<stringa di inizializzazione di backup> o --prefix=<stringa di inizializzazione di backup>: Imposta la stringa di inizializzazione da aggiungere all'inizio del nome del file durante il backup, che può essere un percorso.
- -c o --context: Decodifica i dati di patch in differenze correlate.
- -d<cartella di lavoro> o --directory=<cartella di lavoro>: Imposta la cartella di lavoro.
- -D<simbolo> o --ifdef=<simbolo>: Indica le modifiche con il simbolo specificato.
- -e o --ed: Decodifica i dati di patch in un file descrittivo utilizzabile con i comandi ed.
- -E o --remove-empty-files: Rimuove i file vuoti se il file di output generato dopo il patch è vuoto.
- -f o --force: Questo parametro ha un effetto simile a quello specificato con il parametro "-t", ma suppone che i dati di patch siano la versione più nuova.
- -F<numero di colonne di controllo> o --fuzz<numero di colonne di controllo>: Imposta il valore massimo del numero di colonne di controllo.
- -g<valore di controllo> o --get=<valore di controllo>: Imposta il controllo di patch con RSC o SCCS.
- -i<file di patch> o --input=<file di patch>: Legge il file di patch specificato.
- -l o --ignore-whitespace: Ignora gli spazi e i tabulatori nei dati di patch e nei dati di input.
- -n o --normal: Decodifica i dati di patch in differenze generali.
- -N o --forward: Ignora i dati di patch più vecchi rispetto alla versione originale del file, o i dati di patch di questa versione sono già stati utilizzati.
- -o<file di output> o --output=<file di output>: Imposta il nome del file di output, i file patchati vengono salvati con questo nome.
- -p<livello di stripping> o --strip=<livello di stripping>: Imposta il numero di livelli di nome di percorso da rimuovere.
- -f<file di rifiuto> o --reject-file=<file di rifiuto>: Imposta il nome del file per salvare le informazioni relative ai rifiuti di patch, il nome predefinito è .rej.
- -R o --reverse: Suppone che i dati di patch siano stati generati scambiando i file nuovi e vecchi.
- -s o --quiet o --silent: Non mostra il processo di esecuzione degli strumenti, a meno che non si verifichi un errore.
- -t o --batch: Salta automaticamente gli errori senza chiedere conferma a nessun problema.
- -T o --set-time: Questo parametro ha un effetto simile a quello specificato con il parametro "-Z", ma si basa sul tempo locale.
- -u o --unified Decodifica i dati di patch in differenze uniformi.
- -v o --version Mostra le informazioni sulla versione.
- -V<modalità-di-backup> o --version-control=<modalità-di-backup> Dopo aver fatto il backup del file con il parametro "-b", la stringa di coda del file di backup sarà aggiunta con una stringa di backup. Questa stringa può essere modificata utilizzando il parametro "-z", e quando si specifica un diverso modo di backup utilizzando il parametro "-V", verrà generata una stringa di backup con una diversa coda.
- -Y<stringa-di-inizio-di-backup> o --basename-prefix=--<stringa-di-inizio-di-backup> Imposta la stringa di inizio da aggiungere al nome del file durante il backup.
- -z<stringa-di-coda-di-backup> o --suffix=<stringa-di-coda-di-backup> L'effetto di questo parametro è simile a quello di specificare "-B", ma la differenza è che se il percorso e il nome del file utilizzati per il lavoro di patch sono "src/linux/fs/super.c", il file super.c verrà salvato nella directory /src/linux/fs/backup.
- -Z o --set-utc Modifica il file riparato, impostando l'ora di accesso e modifica come UTC.
- --backup-if-mismatch Fai il backup del file solo se i dati di riparazione non corrispondono e non è stato specificato di fare il backup.
- --binary Leggi e scrivi dati in modalità binaria, senza passare attraverso l'unità di uscita standard.
- --help Aiuto online.
- --nobackup-if-mismatch Non fare il backup del file se i dati di riparazione non corrispondono e non è stato specificato di fare il backup.
- --verbose Mostra dettagliatamente il processo di esecuzione dell'istruzione.
Esempio online
Per aggiornare il file "testfile1" utilizzando l'istruzione patch, il file patch è "testfile.patch", digitare il comando seguente:
$ patch -p0 testfile1 testfile.patch # Aggiornare il file utilizzando il programma patch
Prima di utilizzare questo comando, è possibile utilizzare l'istruzione "cat" per visualizzare il contenuto di "testfile1". Per confrontare i file da modificare o aggiornare con i file originali, utilizzare l'istruzione "diff" per generare il file patch. Ecco come procedere:
$ cat testfile1 # Visualizzare il contenuto di testfile1
Ciao, Questo è il primo file!
$ cat testfile2 # Visualizzare il contenuto di testfile2
Ciao, Questo è il secondo file!
$ diff testfile1 testfile2 #比較兩個文件
1c1
<Hello,Thisisthefirstfile!
---
>Hello,Thisisthesecondfile!
#將比較結果保存到tetsfile.patch文件
$ diff testfile1 testfile2>testfile.patch
$ cat testfile.patch #查看補丁包的內容
1c1
<Hello,Thisisthefirstfile!
---
>Hello,Thisisthesecondfile!
#使用補丁包升級testfile1文件
$ patch -p0 testfile1 testfile.patch
patching file testfile1
$cat testfile1 #再次查看testfile1的內容
#testfile1文件被修改為與testfile2一樣的內容
Hello,This is the secondfile!
注意:上述命令代碼中,"$ diff testfile1 testfile2>testfile. patch"所使用的操作符">"表示将该操作符左邊的文件數據寫入到右邊所指向的文件中。在这里,即是指將兩個文件比較後的結果寫入到文件"testfile.patch"中。
Linux 命令大全