Cómo usar archivos Diff en Linux

Cómo usar archivos Diff en Linux

Diff es una herramienta de línea de comandos para sistemas Unix que le permite comparar dos archivos o directorios y ver las diferencias entre ellos. Es ideal para comparar versiones antiguas y nuevas de archivos para ver qué ha cambiado. En este artículo, le mostramos cómo puede usar diffpara comparar fácilmente archivos en Linux.

Comparando archivos con diff

  • Abra una ventana de terminal.
  • Escriba diffy las rutas a dos archivos que le gustaría comparar. En este caso, estoy comparando dos pequeños programas C en mi escritorio usando el siguiente comando:

diff ~/Desktop/hello.c ~/Desktop/hello-1.c

Una ventana de terminal que muestra un comando diff.
  • Presione Enterpara enviar el comando. La pantalla resultante le mostrará todas las diferentes líneas entre los archivos. Los números de línea comparados se mostrarán como «1c1», lo que significa que se cambió la primera línea y se encontraron las siguientes diferencias.
Una ventana de terminal que muestra la salida de un comando diff.
  • Para ver una vista de lado a lado de los archivos y sus diferencias, use la -ymarca después de diff. Por ejemplo:

diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c

Una ventana de terminal que muestra un comando que imprimirá una diferencia visual.

Cualquier línea con un símbolo de tubería ( |) es una línea con una diferencia. Solo asegúrese de expandir la ventana de su terminal primero, o puede tener dificultades para ver la pantalla.

Una ventana de terminal que muestra la salida de un comando visual diff.

Comparando archivos con Meld

diffTambién se puede acceder a la funcionalidad de Meld , una GUI para diff. Teniendo en cuenta que la interfaz de usuario de diff puede ser difícil de manejar, Meld es una herramienta útil.

  • Instale Meld desde la línea de comando abriendo la terminal y escribiendo:

sudo apt -y install meld

o

sudo dnf -y install meld

para distribuciones basadas en RPM.

Esto inicializará el administrador de paquetes apt y comenzará a instalar Meld. Tenga en cuenta que la -ybandera dirá automáticamente «sí» a cualquier indicación; elimínelo si prefiere confirmar esas indicaciones manualmente.

Una ventana de terminal que muestra el comando de instalación de Meld.
  • Ingrese su contraseña de administrador cuando se le solicite. Cuando vuelva a ver el símbolo del sistema, la instalación habrá finalizado y podrá abrir Meld.
Una ventana de terminal que muestra el proceso de instalación de Meld.
  • Cuando abra Meld, verá tres opciones: comparación de archivos, comparación de directorios y vista de control de versiones. Haga clic en «Archivo».
Una captura de pantalla de la pantalla de bienvenida de Meld.
  • Aparecerán dos menús desplegables, ambos leyendo «(Ninguno)». Haga clic en uno para seleccionar un archivo para comparar.
Una captura de pantalla de la pantalla Meld con un resaltado en el primer selector de archivos.
  • Haga clic en el otro menú desplegable para seleccionar un segundo archivo para comparar.
Una captura de pantalla de la pantalla Meld con un resaltado en el segundo selector de archivos.
  • Haga clic en el botón «Comparar».
Una captura de pantalla de la pantalla Meld con un resaltado en el botón Comparar.
  • La siguiente ventana resume las diferencias encontradas entre dos archivos. Los caracteres rojos son diferencias y el fondo azul indica que hay una diferencia en esa línea. Un fondo verde indica que existe una línea en un archivo pero no en el otro.
Una captura de pantalla del programa Meld con una vista de comparación simple de dos archivos.
  • Para navegar entre las diferencias, haga clic en los botones arriba y abajo en la barra de menú. También puede hacer clic directamente en el documento con el mouse.
Una captura de pantalla del programa Meld resaltando su botón de navegación diferencial.

Manipulación de archivos en Meld

Además de hacer comparaciones, Meld te permite cambiar los archivos comparados. Meld continuará analizando el documento en busca de cambios a medida que modifique cualquiera de las versiones, y puede presionar Ctrl+ Zen cualquier momento para deshacer los cambios.

  • Para copiar cambios de un archivo a otro, haga clic en las pequeñas flechas negras entre los cambios. Al hacer clic en la flecha del lado izquierdo, por ejemplo, se usará la línea del documento de la izquierda para sobrescribir el documento de la derecha.
Una captura de pantalla del programa Meld que muestra los botones de resolución de diferencias.
  • Las líneas también se pueden insertar en documentos sin sobrescribir. Si mantiene presionada la Ctrltecla, verá que las flechas del último paso se convierten en signos más. Haga clic en el icono para abrir un pequeño cuadro de diálogo donde puede elegir dónde insertar una nueva línea.
Una captura de pantalla del programa Meld que muestra su solicitud de adición de diferencias.
  • Finalmente, escriba directamente en su documento. Simplemente inserte el cursor como lo haría normalmente y comience a escribir.
  • Una vez que haya terminado de hacer cambios, haga clic en el botón «Guardar» para guardar sus archivos.
Una captura de pantalla del programa Meld destacando su botón de guardar por archivo.

Creación de archivos diff usando Meld y diff

Además de mostrar las diferencias entre dos archivos, también puede usar Meld para crear «archivos de diferencias». Estos son pequeños fragmentos de texto que contienen instrucciones sobre cómo aplicar cambios de una versión de archivo a otra. Esto es útil si desea distribuir rápidamente actualizaciones de código sin volver a compartir todo el archivo fuente.

  • Abra los dos archivos que desea comparar.
Una captura de pantalla del programa Meld que muestra una diferencia simple.
  • Haga clic en el menú Opciones en la esquina superior derecha de la ventana.
Una captura de pantalla que destaca el botón de opciones de Meld.
  • Seleccione el submenú «Comparación».
Una captura de pantalla del menú de opciones de Meld con un resaltado en el submenú Comparación.
  • Haga clic en la subopción «Formatear como parche».
Una captura de pantalla del submenú Comparación con un resaltado en la subopción Formato.
  • Esto abrirá una pequeña ventana donde Meld imprimirá el archivo de diferencias completo entre sus dos archivos. En este punto, puede copiar este texto en su portapapeles o guardarlo en un archivo. Para hacer esto último, haga clic en el botón «Guardar parche».
Una captura de pantalla de la subventana Meld's Patch con un resaltado en el

Si bien la creación de archivos diff dentro de Meld es simple y directa, hay casos en los que puede que no sea posible acceder a una GUI mientras se edita el código. Para eso, también puede usar el diffprograma para generar un archivo diff.

  • Abra una terminal y verifique si hay diferencias entre los dos archivos:

diff hello.c hello-1.c

Una terminal que muestra una diferencia simple entre dos archivos.
  • Cree un archivo diff simple usando la -cbandera:

diff -c hello.c hello-1.c > hello.diff

Una terminal que muestra una salida de archivo diff básica.
  • Opcionalmente, use la -uopción que combina las dos secuencias de texto en un solo bloque de diferencias unificado. Esto puede ser útil si está cambiando mucho código y desea ahorrar espacio en disco:

diff -u hello.c hello-1.c > hello.diff

Una terminal que muestra una salida diferencial unificada más compleja.

Uso de archivos diff para parchear el código fuente

Como se discutió anteriormente, un archivo diff le permite crear un resumen de los cambios en su código fuente que se puede compartir fácilmente. Sin embargo, diff por sí mismo no puede aplicarlos a los archivos existentes. Para ello, utilice el programa complementario de diff, patch.

  • Determine el código fuente original que el archivo diff está tratando de cambiar:

cat hello.diff | sed 1q

Una terminal que muestra el encabezado del archivo fuente original.
  • Cree una copia de seguridad de su código fuente original:

cp hello.c hello.c.old

  • Ejecute el programa de parche con el archivo original en el primer argumento y el archivo diff en el segundo:

patch hello.c hello.diff

Una terminal que muestra un comando de parche simple para un solo archivo fuente.

Es importante tener en cuenta que un archivo diff también puede contener cambios que abarquen varios archivos. Aplique esto colocando todos los archivos necesarios para actualizar en un solo directorio y ejecutando patch < multi-file.diff.

  • Compruebe si el programa de parches actualizó con éxito su archivo fuente comparándolo con su copia de seguridad:

diff -y hello.c hello.c.old

Una terminal que muestra la diferencia visual entre el archivo fuente nuevo y el original.

FYI: Git es un poderoso programa de control de versiones multiplataforma. Aprenda cómo puede usarlo para administrar sus repositorios de código fuente en Linux.

Preguntas frecuentes

¿Es posible parchear un archivo varias veces?

Sí. Sin embargo, es importante tener en cuenta que el valor del número de línea dentro de un archivo diff es estático. Por ejemplo, aplicar una diferencia que agrega cinco líneas de código en la línea 1 ajustará todo el archivo en cinco líneas. Si bien las herramientas modernas pueden compensar los cambios de diferencias individuales, aplicar más de una puede crear conflictos de código innecesarios.

¿Es un archivo diff similar a un parche de Git?

Sí. Tanto diff como Git usan un tipo de formato similar para sus parches de código. Como resultado, puede intercambiar las dos utilidades al aplicar actualizaciones a su código fuente. Por ejemplo, correr git apply hello.diffes equivalente a correr patch < hello.diff.

¿Puedes usar Meld con un programa de control de versiones como Git?

Sí. Una de las funciones más potentes de Meld es que puede funcionar de forma transparente con cualquier programa de control de versiones. Esto le brinda la capacidad de interactuar fácilmente con sus repositorios fuera de la interfaz de la terminal.

Para hacer esto, presione Ctrl+ N, luego haga clic en el botón «Ver control de versión». A continuación, haga clic en el cuadro desplegable debajo de él y seleccione «Otro». Esto abrirá una pequeña ventana donde puede ver y cargar su repositorio Git.

Crédito de la imagen: Unsplash . Todas las capturas de pantalla por Ramces Red.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *