Visión General
patch es una utilidad que lee un archivo de salida creado por el comando diff (también conocido como archivo de parche) y aplica los cambios a los archivos originales. Este archivo de parche generalmente registra qué líneas se han añadido, eliminado o modificado. El comando patch modifica los archivos originales basándose en esta información. Antes de la aparición de los sistemas de control de versiones (CVS, Git, etc.), era el método principal para compartir cambios de código.
Características Principales
Las características principales del comando patch son las siguientes:
- Utiliza archivos de parche generados por el comando diff.
- Se usa ampliamente para actualizar código fuente, cambiar archivos de configuración, etc.
- Puede detectar y aplicar algunos cambios incluso si el archivo original no coincide exactamente con el archivo de parche.
- También proporciona una función para revertir los cambios a su estado original.
Opciones Principales
Hemos agrupado las opciones de uso frecuente del comando patch según su propósito.
1) Aplicar y Deshacer Parches
2) Ayuda
Comando generado:
Combina los comandos.
Descripción:
`patch` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de Uso
Aprenda las funciones del comando patch a través de varios ejemplos de uso.
Aplicar un Archivo de Parche
patch -p1 -i my_changes.patch
Aplica los cambios al archivo original usando el archivo `my_changes.patch`. La opción `-p1` ignora la primera ruta de directorio del archivo de parche.
Revertir Cambios
patch -p1 -R -i my_changes.patch
Revierte el contenido del parche aplicado a su estado original usando la opción `-R`. Se utiliza para restaurar el archivo original.
Aplicar Parche a través de Tubería
diff -u original_file.txt new_file.txt | patch -p0 original_file.txt
Pasa directamente la salida del comando diff al comando patch a través de una tubería (`|`) para aplicar el parche sin crear un archivo de parche.
Previsualizar Aplicación de Parche
patch --dry-run -p1 -i my_changes.patch
Utiliza la opción `--dry-run` para previsualizar qué cambios ocurrirán al aplicar el parche.
Instalación
patch está incluido por defecto en la mayoría de las distribuciones de Linux. Si el paquete no está presente, puede instalar los paquetes `patch` o `diffutils` de la siguiente manera:
Debian/Ubuntu
sudo apt update && sudo apt install -y patch
RHEL/CentOS/Fedora
sudo dnf install -y patch
Arch Linux
sudo pacman -S --needed patch
Consejos y Precauciones
Aquí se resumen los puntos a tener en cuenta al usar el comando patch.
Consejos
- El formato unificado (unified) generado por `diff -u` es el formato de parche más común. El uso de este formato aumenta la tasa de éxito de la aplicación del parche.
- La opción `-p` es muy importante para ignorar la información de la ruta en el archivo de parche. Debe verificar el encabezado del archivo de parche para especificar el nivel correcto. Por ejemplo, si la ruta es `a/src/file.c`, usar `-p1` aplicará el parche a `src/file.c`.
- Si la aplicación del parche falla, se creará un archivo con la extensión `.rej`. Este archivo contiene las partes que fallaron en el parche, por lo que puede consultarlo al realizar modificaciones manuales.
- Es recomendable hacer una copia de seguridad del archivo original antes de aplicar un parche.