mandato cmp

Finalidad

Compara el contenido de dos archivos e informa del primer carácter que difiere.

Sintaxis

cmp [ -l | -s ] File1 File2

Descripción

El mandato cmp compara los archivos designados por los parámetros File1 y File2 y escribe los resultados en la salida estándar. Si especifica un - (signo menos) para el parámetro File1 o File2 , el mandato cmp lee la entrada estándar para ese archivo. Sólo se puede leer un archivo de la entrada estándar. En condiciones predeterminadas, el mandato cmp no muestra nada si los archivos son iguales. Si difieren, el mandato cmp muestra el byte y el número de línea en los que se produce la primera diferencia. Si se especifica el distintivo -l y si un archivo es una subsecuencia inicial del otro (es decir, si el mandato cmp lee un carácter de fin de archivo en un archivo antes de encontrar diferencias), el mandato cmp lo anota. Normalmente, utilice el mandato cmp para comparar archivos que no son de texto y el mandato diff para comparar archivos de texto.

Distintivos

Elemento Descripción
-l (L minúscula) Muestra, para cada diferencia, el número de bytes en decimal y los bytes diferentes en octal.
-s Devuelve sólo un valor de salida. Un valor de 0 indica archivos idénticos; un valor de 1 indica archivos diferentes; un valor de 2 indica un archivo inaccesible o una opción que falta.

Estado de salida

Este mandato devuelve los siguientes valores de salida:

Elemento Descripción
0 Los archivos son idénticos.
1 Los archivos son diferentes. Este valor se proporciona incluso si un archivo es una subsecuencia inicial del otro (un archivo es idéntico a la primera parte de la otra).
> 1 Se ha producido un error.

Ejemplos

  1. Para determinar si dos archivos son idénticos, especifique:
    cmp prog.o.bak prog.o
    Esto compara prog.o.baky prog.o. Si los archivos son idénticos, no se visualiza un mensaje. Si los archivos difieren, se muestra la ubicación de la primera diferencia; por ejemplo:
    prog.o.bak prog.o differ: char 4, line 1
    Si el mensajecmp: EOF on prog.o.bakse visualiza, a continuación, la primera parte deprog.oes idéntico aprog.o.bak, pero hay datos adicionales enprog.o.
  2. Para visualizar cada par de bytes que difieren, entre:
    cmp  -l prog.o.bak prog.o
    Esto compara los archivos y, a continuación, muestra el número de bytes (en decimal) y los bytes diferentes (en octal) para cada diferencia. Por ejemplo, si el quinto byte es octal 101 enprog.o.baky 141 enprog.o, el mandato cmp muestra:
    5 101 141
  3. Para comparar dos archivos sin escribir ningún mensaje, especifique:
    cmp  -s prog.c.bak prog.c
    Esto proporciona un valor de salida de0si los archivos son idénticos, un valor de1si es diferente, o un valor de2si se produce un error. Esta forma del mandato se utiliza normalmente en procedimientos de shell. Por ejemplo:
    if cmp  -s prog.c.bak prog.c
    then
    echo No change
    fi
    Se visualiza este procedimiento de shell parcialNo changesi los dos archivos son idénticos.

Archivos

Elemento Descripción
/usr/bin/cmp Contiene el mandato cmp .