Commande cmp

Objectif

Compare le contenu de deux fichiers et signale le premier caractère qui diffère.

Syntaxe

cmp [ -l | -s ] File1 File2

Descriptif

La commande cmp compare les fichiers désignés par les paramètres File1 et File2 et écrit les résultats dans la sortie standard. Si vous spécifiez un signe - (signe moins) pour le paramètre File1 ou File2 , la commande cmp lit l'entrée standard de ce fichier. Un seul fichier peut être lu à partir d'une entrée standard. Dans les conditions par défaut, la commande cmp n'affiche rien si les fichiers sont identiques. S'ils diffèrent, la commande cmp affiche l'octet et le numéro de ligne auxquels la première différence se produit. Si l'indicateur -l est spécifié et si un fichier est une sous-séquence initiale de l'autre (c'est-à-dire, si la commande cmp lit un caractère de fin de fichier dans un fichier avant de trouver des différences), la commande cmp le remarque. Normalement, utilisez la commande cmp pour comparer les fichiers non texte et la commande diff pour comparer les fichiers texte.

Indicateurs

Article Descriptif
-l (L minuscule) Affiche, pour chaque différence, le nombre d'octets en décimal et les octets différents en octal.
-S Renvoie uniquement une valeur de sortie. La valeur 0 indique des fichiers identiques ; la valeur 1 indique des fichiers différents ; la valeur 2 indique un fichier inaccessible ou une option manquante.

Statut de sortie

Cette commande renvoie les valeurs de sortie suivantes :

Article Descriptif
0 % Les fichiers sont identiques.
1 seul Les fichiers sont différents. Cette valeur est donnée même si un fichier est une sous-séquence initiale de l'autre (un fichier est identique à la première partie de l'autre).
> 1 Une erreur s'est produite.

Exemples

  1. Pour déterminer si deux fichiers sont identiques, entrez:
    cmp prog.o.bak prog.o
    Ceci permet de comparer prog.o.baket prog.o. Si les fichiers sont identiques, un message ne s'affiche pas. Si les fichiers diffèrent, l'emplacement de la première différence est affiché ; par exemple:
    prog.o.bak prog.o differ: char 4, line 1
    Si le messagecmp: EOF on prog.o.baks'affiche, puis la première partie deprog.oest identique àprog.o.bak, mais il y a des données supplémentaires dansprog.o.
  2. Pour afficher chaque paire d'octets différente, entrez:
    cmp  -l prog.o.bak prog.o
    Cela permet de comparer les fichiers, puis d'afficher le nombre d'octets (en décimal) et les octets différents (en octal) pour chaque différence. Par exemple, si le cinquième octet est octal 101 dansprog.o.baket 141 dansprog.o, la commande cmp affiche:
    5 101 141
  3. Pour comparer deux fichiers sans écrire de messages, entrez:
    cmp  -s prog.c.bak prog.c
    Cela donne une valeur de sortie de0si les fichiers sont identiques, une valeur de1s'il est différent, ou une valeur de2si une erreur se produit. Cette forme de commande est normalement utilisée dans les procédures shell. Par exemple :
    if cmp  -s prog.c.bak prog.c
    then
    echo No change
    fi
    Cette procédure shell partielle s'afficheNo changesi les deux fichiers sont identiques.

Fichiers

Article Descriptif
/usr/bin/cmp Contient la commande cmp .