Pregunta 1En la salida en formato unificado de diff, ¿qué símbolo empieza una línea eliminada (una que estaba en el archivo antiguo)?
Diferencias entre archivos — diff
Mira cómo comprobar las diferencias entre dos archivos con diff. Leerás qué líneas se añadieron, eliminaron o cambiaron, con diagramas y una terminal práctica dentro de tu navegador.
Cuándo usar diff
Úsalo cuando quieras comprobar qué cambiaste después de editar un archivo, o si dos archivos tienen el mismo contenido. Le pasas dos archivos y muestra solo las líneas que difieren.
Comparar dos archivos — diff
diff compara dos archivos y muestra solo las partes que difieren. Lo usas como diff old.txt new.txt, tratando el primer archivo como la versión antigua (antes) y el segundo como la nueva (después). Las líneas iguales no se imprimen — solo se reportan las diferencias.
diff old.txt new.txt alinea los dos archivos y muestra solo la segunda línea que difiere como -banana (antiguo) y +grape (nuevo). Las iguales apple y cherry no se imprimen.En la terminal del navegador, diff muestra las diferencias en formato unificado. Los --- y +++ iniciales son los nombres de los dos archivos comparados, la línea @@ indica dónde ocurrió el cambio, y en el cuerpo cada línea eliminada empieza con - y cada línea añadida con +. Las líneas sin cambios empiezan con un espacio y aparecen al lado como contexto.
| Símbolo | Significado |
|---|---|
--- old.txt | Nombre del primer archivo (antiguo) comparado |
+++ new.txt | Nombre del segundo archivo (nuevo) comparado |
@@ -N,M +N,M @@ | Información de posición de dónde ocurrió el cambio |
- línea | Una línea eliminada (estaba en el archivo antiguo) |
+ línea | Una línea añadida (está en el archivo nuevo) |
línea (espacio al inicio) | Una línea sin cambios mostrada junto como contexto |
@@ indica la posición del cambio, - una línea eliminada (antiguo) y + una línea añadida (nuevo). Las líneas sin cambios aparecen al lado con un espacio al inicio.printf 'apple\nbanana\ncherry\n' > old.txt # crea la muestra
printf 'apple\ngrape\ncherry\n' > new.txt # una muestra que difiere por una línea
diff old.txt new.txt
--- old.txt
+++ new.txt
@@ -1,3 +1,3 @@
apple
-banana
+grape
cherry
Leer añadidos y eliminaciones
Las diferencias no son solo reescrituras. Cuando se añade una línea solo en el archivo de la derecha, obtienes únicamente una línea +; cuando se elimina una línea del archivo de la izquierda, obtienes únicamente una línea -. En lugar de que - y + aparezcan en pareja como en una reescritura, que aparezca solo uno de ellos es la señal de un añadido o una eliminación. Invierte el orden en que comparas y la misma diferencia cambia entre + (añadida) y - (eliminada).
printf 'one\ntwo\n' > base.txt # crea la muestra
printf 'one\ntwo\nthree\n' > more.txt # una muestra con una línea añadida
diff base.txt more.txt
--- base.txt
+++ more.txt
@@ -1,2 +1,3 @@
one
two
+three
diff base.txt more.txt muestra +three (añadida), mientras que el invertido diff more.txt base.txt muestra -three (eliminada).diff y patch, y cómo lo muestran otros entornos
El diff en formato unificado que produce diff puede aplicarse a otro archivo tal cual con el comando patch. Cuando un equipo intercambia correcciones, pasarse este diff (un parche) de un lado a otro es común. Este curso se centra en leer diffs y no cubre aquí cómo aplicarlos.
En la terminal del navegador de este curso, diff produce el formato unificado directamente. Con GNU diff en Ubuntu y similares, diff a secas muestra el formato tradicional usando 2c2 y < / >, y al añadir diff -u se obtiene el mismo formato unificado que se usa en este curso.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué muestra una línea como @@ -1,3 +1,3 @@?
Pregunta 3Cuando se añade una línea solo en el archivo de la derecha, ¿cómo se ve la salida de diff?