Linux comandos · 4 min read · Sep 17, 2025

Tutorial del comando cmp de Linux para principiantes (7 ejemplos)

El comando cmp se utiliza en el sistema operativo Linux para comparar dos archivos byte por byte. Proporciona una salida concisa de las diferencias entre dos archivos, permitiendo al usuario identificar fácilmente las discrepancias entre ellos. El comando cmp muestra cuántos bytes no coincidentes ocurrieron en qué desplazamientos y proporciona un conteo resumen de las comparaciones incorrectas. Con esta herramienta útil, los usuarios pueden verificar rápidamente si dos archivos son idénticos o no.

En este tutorial, discutiremos ‘cmp’ a través de ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos e instrucciones mencionados en este tutorial han sido probados en Ubuntu 22.04.

comando cmp

El comando ‘cmp’ te permite realizar una comparación byte por byte de dos archivos. La utilidad proporciona varias características en forma de opciones de línea de comandos. En este tutorial, discutiremos algunas opciones clave que te darán (a un principiante) una buena idea de cómo funciona la herramienta.

1. Cómo comparar dos archivos usando cmp

En su forma más simple, puedes usar ‘cmp’ de la siguiente manera:

cmp [nombre-del-archivo1] [nombre-del-archivo2]

Como ya se mencionó, la herramienta compara dos archivos byte por byte. Cuando se encuentra una diferencia, la herramienta se detiene y produce una salida que indica en qué línea y byte se encuentra la diferencia.

Por ejemplo:

cmp file1.txt file2.txt

Comparar dos archivos en Linux con el comando cmp

Como puedes ver en la captura de pantalla anterior, la salida dice claramente que los archivos difieren en el byte 20 en la línea 1.

2. Cómo hacer que cmp imprima los bytes diferentes

Si lo deseas, también puedes hacer que ‘cmp’ muestre los bytes diferentes en su salida. Esto se puede hacer utilizando la opción de línea de comandos -b.

cmp -b [archivo1] [archivo2]

Por ejemplo:

cmp -b file1.txt  file2.txt

Cómo hacer que cmp imprima los bytes diferentes

En este caso, como puedes ver en la captura de pantalla anterior, la diferencia está en el byte 17, que es ‘l’ en file1.txt y ‘i’ en file2.txt. Los valores 154 y 151 son los valores para estos bytes, respectivamente.

3. Cómo hacer que cmp omita algunos bytes iniciales de ambos archivos

Si lo deseas, también puedes hacer que ‘cmp’ omita un número particular de bytes iniciales de ambos archivos y luego los compare. Esto se puede hacer especificando el número de bytes como un argumento para la opción de línea de comandos -i.

cmp -i [bytes-a-omitir] [archivo1] [archivo2]

Por ejemplo:

cmp -i 10 file1.txt  file2.txt

Ten en cuenta que en casos como estos (donde usas -i para omitir bytes), el byte en el que comienza la comparación se trata como el byte número cero.

Avanzando, la herramienta también te permite omitir un número diferente de bytes de ambos archivos. Esto se puede hacer de la siguiente manera:

cmp -i [bytes-a-omitir-del-primer-archivo] : [bytes-a-omitir-del-segundo-archivo] [archivo1] [archivo2]

Por ejemplo:

cmp -i 4:7 file1.txt file2.txt

Cómo hacer que cmp omita algunos bytes iniciales de ambos archivos

4. Cómo hacer que cmp muestre la posición del byte (y el valor) para todos los bytes diferentes

También puedes hacer que el comando ‘cmp’ imprima la posición del byte y el valor del byte para todos los bytes diferentes. Esta función se puede acceder utilizando la opción de línea de comandos -l.

cmp -l [archivo1] [archivo2]

Por ejemplo:

cmp -l file1.txt  file2.txt

Cómo hacer que cmp muestre la posición del byte (y el valor) para todos los bytes diferentes

La primera columna en la salida (ejemplo mostrado arriba) representa la posición (número de byte) de los bytes diferentes. La segunda columna representa el valor del byte diferente en el primer archivo, mientras que la tercera columna representa el valor del byte diferente en el segundo archivo.

5. Cómo limitar el número de bytes a comparar

La herramienta también te permite limitar el número de bytes que deseas comparar; por ejemplo, puedes querer comparar como máximo 25 o 50 bytes. Esto se puede hacer utilizando la opción de línea de comandos -n.

$ cmp -n [número-de-bytes-a-comparar]  [archivo1] [archivo2]

Por ejemplo:

$ cmp -n 25  file1.txt  file2.txt

6. Cómo mostrar el medidor de progreso mientras usas el comando cmp

Mientras comparas archivos grandes (o incluso particiones) usando ‘cmp’, puede que desees ver el progreso de la comparación en curso. Esto se puede hacer utilizando el comando ‘pv’ junto con el comando ‘cmp’. Aquí está la plantilla del comando que puedes usar:

$ pv [archivo1] | cmp -l [archivo2] > [archivo-salida]

Por ejemplo:

$ pv file1.txt | cmp -l file3.txt > output.txt

Ten en cuenta que el archivo ‘output.txt’ contendrá toda la salida que produce el comando ‘cmp’. El medidor de progreso (que puedes ver en la captura de pantalla anterior) es producido por el comando ‘pv’.

El comando ‘pv’ generalmente no viene preinstalado en Linux (no lo hace en Ubuntu al menos). Pero puedes instalarlo fácilmente usando el siguiente comando:

sudo apt-get install pv

7. Cómo hacer que ‘cmp’ suprima la salida

La herramienta también te permite suprimir la salida que produce normalmente. Esto se puede hacer utilizando la opción de línea de comandos -s.

$ cmp -s [archivo1] [archivo2]

Por ejemplo:

$ cmp -s file1.txt file2.txt

Esta opción puede ser útil al usar la utilidad ‘cmp’ en scripts. Por ejemplo, dependiendo de si los archivos son idénticos (lo que se puede saber accediendo al código de salida del comando), podrías querer mostrar un mensaje personalizado en lugar de la salida que la herramienta produce normalmente.

Conclusión

Hemos discutido la mayoría de las opciones del comando ‘cmp’ en este artículo, así que necesitas practicar estas para comenzar a usar la herramienta en tu trabajo diario. En caso de alguna duda o consulta, consulta la página del manual de ‘cmp’.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.