Descripción general
diff -u compara el contenido de dos archivos y muestra las diferencias en formato unificado. Este formato muestra las líneas modificadas junto con algunas líneas de contexto circundante, lo que facilita la comprensión de qué se ha modificado y cómo. Es una herramienta esencial, especialmente para la gestión de código fuente o el seguimiento del historial de cambios en archivos de configuración.
Características principales
- Muestra diferencias en formato unificado
- Proporciona contexto para los cambios
- Útil para revisión de código y control de versiones
- Distingue claramente adiciones/eliminaciones/modificaciones
Opciones principales
El comando diff ofrece varias opciones, pero aquí se describen las que se usan comúnmente junto con la opción `-u`.
Formato de salida
Comportamiento de comparación
Comando generado:
Combina los comandos.
Descripción:
`diff` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Varios ejemplos de uso del comando diff -u.
Comparar diferencias entre dos archivos en formato unificado
diff -u file1.txt file2.txt
Muestra las diferencias entre file1.txt y file2.txt en formato unificado.
Comparar archivos de dos directorios de forma recursiva
diff -ur dir1 dir2
Compara recursivamente todos los archivos dentro de los directorios dir1 y dir2 y muestra los resultados en formato unificado.
Comparar archivos ignorando cambios de espacios en blanco
diff -uw file1.txt file2.txt
Compara las diferencias reales de contenido ignorando los cambios en los caracteres de espacio en blanco (espacios, tabulaciones, etc.) en el contenido del archivo.
Comparar archivos ignorando líneas con un patrón específico
diff -u -I '^#' config1.conf config2.conf
Compara las diferencias entre los archivos config1.conf y config2.conf ignorando las líneas de comentarios (líneas que comienzan con #).
Guardar la salida unificada como archivo de parche
diff -u old_file.txt new_file.txt > changes.patch
Muestra las diferencias entre dos archivos en formato unificado y guarda el resultado en el archivo 'changes.patch'. Este archivo puede ser aplicado con el comando 'patch'.
Consejos y precauciones
Consejos para interpretar y utilizar eficazmente la salida de diff -u.
Cómo interpretar la salida unificada
La salida de diff -u utiliza los siguientes símbolos para indicar los cambios:
- --- (tres guiones): Indica la ruta y la marca de tiempo del archivo original (old).
- +++ (tres signos más): Indica la ruta y la marca de tiempo del archivo nuevo (new).
- @@ -START_OLD,COUNT_OLD +START_NEW,COUNT_NEW @@: 'Encabezado de fragmento' que indica el número de línea y el rango de las líneas donde ocurrieron los cambios en el archivo.
- - (guion): Línea que solo existe en el archivo original, lo que significa una línea eliminada.
- + (signo más): Línea que solo existe en el archivo nuevo, lo que significa una línea agregada.
- (espacio): Línea que existe en ambos archivos, lo que significa una línea de contexto sin cambios.
Integración con el comando patch
La salida generada por diff -u se puede usar como entrada para el comando `patch`. Esto permite aplicar o revertir fácilmente los cambios de un archivo a otro. Por ejemplo, después de crear un archivo de parche con el comando `diff -u old_file new_file > changes.patch`, puede aplicar los cambios de `changes.patch` a `old_file` usando el comando `patch -p0 < changes.patch` para que sea idéntico a `new_file`.