English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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 命令大全