Comando patch de Linux
Comandos de Linux completos
El comando patch de Linux se utiliza para reparar archivos.
El comando patch permite al usuario modificar y actualizar el archivo original utilizando el método de configuración del archivo de parche. Si se modifica solo un archivo a la vez, se puede ejecutar el comando en la lista de comandos en orden. Si se combina con el método del archivo de parche, se puede reparar una gran cantidad de archivos a la vez, que es uno de los métodos de actualización del núcleo del sistema Linux.
sintaxis
patch [-bceEflnNRstTuvZ][-B <cadena de inicio de respaldo>][-d <directorio de trabajo>][-D <símbolo de identificación>][-F <numero de columnas de discernimiento>][-g <valor de control>][-i <archivo de reparación>][-o <archivo de salida>][-p <nivel de despojo>][-r <archivo denegado>][-V <modo de respaldo>][-Y <cadena de inicio de respaldo>][-z <cadena de final de respaldo>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][archivo original <archivo de reparación>] o camino [-p <nivel de despojo>] < [archivo de reparación]
parámetros:
- -bo--backup Reservar cada archivo original.
- -B<cadena de inicio de respaldo>o--prefix=<cadena de inicio de respaldo> Establecer la cadena de inicio que se adjunta al nombre del archivo durante el respaldo del archivo, esta cadena puede ser un nombre de camino.
- -co--context Interpretar los datos de reparación como diferencias relacionadas.
- -do--directory=<directorio de trabajo> Establecer el directorio de trabajo.
- -D<símbolo de identificación>o--ifdef=<símbolo de identificación> Marcar los cambios en el lugar utilizando el símbolo especificado.
- -eo--ed Interpretar los datos de reparación como archivos de instrucciones que pueden usarse con ed.
- -Eo--remove-empty-files Si el archivo de salida después de la reparación tiene contenido en blanco, eliminar el archivo.
- -f--force El efecto de este parámetro es similar al de especificar"-t"parámetros similares, pero asume que la versión de los datos de reparación es la nueva versión.
- -F<numero de columnas de discernimiento>o--fuzz<numero de columnas de discernimiento> Establecer el valor máximo del número de columnas de discernimiento.
- -g<valor de control>o--get=<valor de control> Establecer la reparación de修补作业 con RSC o SCCS.
- -i<archivo de reparación>o--input=<archivo de reparación> Leer el archivo de reparación especificado.
- -lo--ignore-whitespace Ignorar los saltos de tabulación y caracteres de espacio en blanco en los datos de reparación.
- -no--normal Interpretar los datos de reparación como diferencias generales.
- -No--forward Ignorar los datos reparados que son más antiguos que la versión del archivo original o que ya se han utilizado los datos de reparación de esta versión.
- -o<archivo de salida>o--output=<archivo de salida> Establecer el nombre del archivo de salida, el archivo reparado se almacenará con este nombre.
- -p<剥离层级>o--strip=<剥离层级> Establecer el nombre del camino que se desea despojar de varias capas.
- -f<nombre de archivo de rechazo> o--reject-file=<nombre de archivo de rechazo> Establecer el nombre del archivo para guardar la información de rechazo de la reparación, el nombre predeterminado es .rej。
- -R o--reverse Suponer que los datos de reparación se generan por el intercambio de posiciones de los archivos nuevos y antiguos。
- -s o--quiet o--silent No mostrar el proceso de ejecución de la instrucción, a menos que ocurra un error。
- -t o--batch Saltar automáticamente los errores, sin hacer preguntas.
- -T o--set-time El efecto de este parámetro es similar a especificar"-Z"es similar, pero se basa principalmente en la hora local.
- -u o--unified Traducir los datos de reparación en diferencias uniformes。
- -v o--version Mostrar información de versión。
- -V<método de respaldo> o--version-control=<método de respaldo> Usar"-b"para respaldar el archivo de destino, el archivo de respaldo tendrá agregado un cadena de respaldo, esta cadena no solo se puede-z"al cambiar, cuando se utiliza"-V"al especificar diferentes métodos de copia de seguridad también producirá diferentes cadenas de final de respaldo. El parámetro"
- -Y<cadena de inicio de respaldo> o--basename-prefix=--<cadena de inicio de respaldo> Al establecer la copia de seguridad del archivo, agregar una cadena de inicio en la parte superior del nombre básico del archivo.
- -z<cadena de final de respaldo> o--suffix=<cadena de final de respaldo> El efecto de este parámetro es similar a especificar"-B"参数 es similar, pero la diferencia radica en que la ruta y el nombre de archivo utilizados para la tarea de reparación son src/linux/fs/super.c, añadiendo "backup/"después de la cadena, el archivo super.c se respaldará en/src/linux/fs/en el directorio de copia de seguridad.
- -Z o--set-utc Establecer el tiempo de cambio y acceso del archivo parcheado en UTC。
- --backup-if-mismatch Hacer copia de seguridad del archivo cuando los datos de reparación no coinciden completamente y no se especifica explícitamente hacer copia de seguridad del archivo.
- --binary Escribir y leer datos en modo binario, sin pasar por el dispositivo de salida estándar。
- --help Ayuda en línea。
- --nobackup-if-mismatch No hacer copia de seguridad del archivo cuando los datos de reparación no coinciden completamente y no se especifica explícitamente hacer copia de seguridad del archivo.
- --verbose Mostrar el proceso de ejecución de la instrucción en detalle。
Ejemplo en línea
Usar la instrucción "patch" para actualizar el archivo "testfile1Para actualizar el archivo "testfile" usando el comando "patch", ingrese el siguiente comando:
$ patch -p0 testfile1 testfile.patch # Usar el programa de parche para actualizar el archivo
Antes de usar este comando, puede usar la instrucción "cat" para ver "testfile1"的内容。En caso de necesitar modificar y actualizar los archivos, se puede utilizar la instrucción "diff" para generar un archivo de parche. La operación específica se muestra a continuación:
$ cat testfile1 #Ver testfile1de contenido
¡Hola, Esto es el primer archivo!
$ cat testfile2 #Ver testfile2de contenido
¡Hola, Esto es el segundo archivo!
$ diff testfile1 testfile2 #Comparar dos archivos
1c1
<¡Hola, Esto es el primer archivo!
---
¡Hola, Esto es el segundo archivo!
#Guardar los resultados de la comparación en el archivo tetsfile.patch
$ diff testfile1 testfile2>testfile.patch
$ cat testfile.patch #Ver el contenido del paquete de parches
1c1
<¡Hola, Esto es el primer archivo!
---
¡Hola, Esto es el segundo archivo!
#Actualizar testfile usando el paquete de parches1archivo
$ patch -p0 testfile1 testfile.patch
Arreglando archivo testfile1
$cat testfile1 #Volver a ver testfile1de contenido
#testfile1El archivo se modificó para que sea idéntico a testfile2Contenido idéntico
¡Hola, Esto es el segundo archivo!
Atención: en el código de comandos mencionados anteriormente, "$ diff testfile1 testfile2El operador ">" utilizado en "testfile.patch" indica que los datos del archivo a la izquierda del operador se escriben en el archivo apuntado por la derecha. En este caso, se refiere a que los resultados de la comparación de dos archivos se escriben en el archivo "testfile.patch".
Comandos de Linux completos