Introducción y fundamentos
A diferencia de herramientas orientadas a texto estructurado como diff, la utilidad cmp en entornos Linux permite inspeccionar discrepancias a nivel de bytes con una velocidad sobresaliente. Esta guía técnica aborda desde el cotejo inicial entre archivos planos y binarios hasta la integración de sus parámetros clave en flujos de trabajo automatizados dentro de scripts en Bash.
Cotejo básico: Detección del primer byte y línea divergentes
Para estructurar un entorno de pruebas controlado y sin interferencias, procedemos a generar un directorio de trabajo temporal y situarnos en él mediante mkdir -p ~/cmp_test && cd ~/cmp_test.

A continuación, creamos tres ficheros de muestra utilizando echo: dos con contenido idéntico (file1.txt y file2.txt) y un tercero (file3.txt) con una ligera variación en la última palabra.

El comportamiento por omisión de cmp consiste en examinar minuciosamente ambos elementos byte a byte. Siguiendo la filosofía clásica de Unix, cuando dos ficheros coinciden en su totalidad, la herramienta finaliza de manera silenciosa sin emitir ningún mensaje en la terminal.
⚙️ [Opciones fundamentales]
-b : Muestra en pantalla tanto el código numérico como la representación del carácter en el punto de discrepancia.-l : Desglosa un listado exhaustivo con la posición y el valor octal de cada byte divergente.-n : Restringe el alcance de la comprobación a una cantidad máxima de bytes predefinida.-i : Omite un número inicial determinado de bytes en cada archivo antes de evaluar similitudes.-s : Suprime la salida estándar y comunica el resultado exclusivamente mediante el código de salida (0 o 1).

Al contrastar dos archivos con diferencias ejecutando cmp file1.txt file3.txt, el comando señala de inmediato la posición exacta donde ocurre la primera discordancia, indicando tanto el offset de byte como la línea correspondiente.

Análisis pormenorizado: Reporte completo de bytes y caracteres (-l, -b)
Para ilustrar el análisis granular de discrepancias, generamos un par de archivos sencillos (f1.txt y f2.txt) que difieren puntualmente en un único carácter alfabético.

Al incorporar el modificador -l mediante cmp -l f1.txt f2.txt, la utilidad enumera todas las divergencias detectadas señalando el desplazamiento decimal y los valores octales correspondientes en cada fuente. En este caso, se visualiza que en el tercer byte el primer archivo posee el valor octal 103 (C), mientras que el segundo registra 130 (X).

Por su parte, la opción -b facilita una interpretación más intuitiva al desplegar directamente el símbolo ASCII legible junto a su representación octal en el instante en que detecta la variación inicial: byte 3 con 103 (C) frente a 130 (X).

Al combinar ambos parámetros a través de cmp -lb f1.txt f2.txt, obtenemos una salida integral que desglosa la ubicación métrica, la codificación octal y la grafía de cada byte no coincidente, simplificando drásticamente la depuración de datos binarios o cadenas de texto.

Automatización y scripting: Operación silenciosa y códigos de retorno (-s)
En entornos de administración automatizados, la bandera -s resulta indispensable, ya que bloquea cualquier impresión hacia la consola y confía el veredicto exclusivamente a la variable de estado $?. Al evaluar dos archivos gemelos, el comando retorna el valor 0, confirmando identidad absoluta.

En cambio, si procesamos dos archivos que discrepan entre sí con este mismo modo mudo, el proceso finaliza devolviendo el código 1, el cual constata de forma unívoca la presencia de inconsistencias entre los datos.

Esta mecánica permite insertar cmp -s directamente en estructuras condicionales if dentro de scripts de Bash. Al validarse la igualdad de contenido (retorno 0), el flujo prosigue por la rama positiva de manera limpia y sin generar ruido en los registros de salida.

Delimitación del alcance: Omisión de offsets (-i) y límite de lectura (-n)
Para experimentar con el control de rangos de escaneo, preparamos data1.txt y data2.txt, los cuales comparten un sufijo en común pero poseen encabezados discordantes.

Al contrastarlos sin modificadores adicionales mediante cmp data1.txt data2.txt, la detección salta de forma instantánea en el byte inicial (línea 1), interrumpiendo de inmediato la verificación.

Si requerimos descartar cabeceras o metadatos prefijados, empleamos -i 7 para instruir al comando que desestime los primeros 7 bytes. Puesto que la sección restante (Alpha_Data) es idéntica en ambas fuentes, la comprobación concluye con éxito y sin arrojar advertencias.

Asimismo, la opción -n 6 restringe la inspección a una ventana máxima de 6 bytes a partir del origen del fichero. Como la divergencia radica justamente en dicho segmento preliminar, se señala oportunamente el conflicto en el primer byte examinado.

Dominar estas variantes de cmp proporciona una ventaja operativa crucial al auditar la integridad de paquetes pesados, firmwares o archivos binarios complejos donde una revisión de texto estándar resultaría ineficiente.