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. ]