El comando diff
del paquete diffutils
compara archivos línea por línea. Es muy útil cuando desea verificar si hubo cambios recientes en un archivo desde la última copia de seguridad y cuáles son. Un estado de salida de 0
significa que no se encontraron diferencias, 1
significa que se encontraron algunas diferencias y 2
significa problema. Y por supuesto, si hay cambios, diff
Ejemplo 1:Ambos archivos tienen el mismo contenido
Alice y Bob están haciendo una barbacoa cada uno y han publicado sus menús. Para decidir qué menú disfrutaría más, podría comparar los menús de la siguiente manera:
$ diff menu1 menu2
$ echo $?
0
$ cat menu{1,2}
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
Verá, ambos están sirviendo costillas de cerdo, pechuga y cerdo desmenuzado. No hay diferencia entre ambos archivos. Tal vez Alice y Bob deberían unir fuerzas para organizar una gran barbacoa.
Cuando Eve escuchó que Alice y Bob estaban organizando fiestas, se puso celosa y decidió organizar una barbacoa también. Su menú viene con el archivo menu3
. Bueno, veamos cuáles son las diferencias en su menú en comparación con el de Alice y el de Bob.
Ejemplo 2:Ahora hay bebidas involucradas
$ diff menu1 menu3
4a5,8
>
> # Drinks
> * Soda
> * Beer
$ echo $?
1
$
Ahora hay diferencias. Y, con la salida en la primera línea, diff
nos dice qué se debe agregar (a) a menu1
para que tenga el mismo contenido que menu3
. Entonces, 4a5,8
significa que debe agregar algunas líneas después de la línea 4 en menu1
para que se vea como las líneas 5-8 en menu3
.
Al cambiar la posición de los archivos, la salida se ve diferente:
$ diff menu3 menu1
5,8d4
<
< # Drinks
< * Soda
< * Beer
Ahora, diff
nos dice que las líneas 5-8 en menu3
debe eliminarse (d) para que el archivo sea idéntico a menu1
.
Ejemplo 3:Cuando hay algo que cambiar
He editado menu1
y menu2
de nuevo para verse así:
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Pulled Pork
* Pulled Pork
Esta vez, diff
nos mostrará qué línea debe cambiarse (c) para que ambos archivos se vean iguales:
$ diff menu1 menu2
3c3
< * Brisket
---
> * Pulled Pork
Envolviéndolo
La diff
command es una herramienta fácil y flexible de usar para comparar archivos línea por línea. Echa un vistazo a diff(1)
para descubrir qué más se puede hacer con diff
.
[ ¿Quiere poner a prueba sus habilidades de administrador de sistemas? Tome una evaluación de habilidades hoy. ]