Souvent, plusieurs utilisateurs ayant accès à un fichier effectuent des copies de ce fichier en y apportant des modifications. La commande diff vous indique les différences rencontrées entre les versions d'un fichier ASCII. La commande suivante :
$ diff leftfile rightfile |
balaie chaque ligne des fichiers leftfile et rightfile en recherchant les différences éventuelles. Lorsqu'elle rencontre une ligne (ou des lignes) différente(s), elle détermine si la différence provient de l'ajout, de la suppression ou de la modification d'une ligne, et indique le nombre de lignes concernées, ainsi que leur numéro respectif dans chacun des deux fichiers, suivi du texte correspondant.
Si la différence est due à un ajout, la commande diff affiche une ligne sous la forme suivante :
l[,l] a r[,r]
où l désigne un numéro de ligne du fichier leftfile et r un numéro de ligne du fichier rightfile.
Si la différence est due à une suppression, la commande diff affiche la lettre d (delete) au lieu de la lettre a ; s'il s'agit d'une modification de ligne, la commande diff affiche la lettre c (change).
Le texte figurant sur les lignes respectives des deux fichiers suit immédiatement le numéro de ligne. Le texte du fichier leftfile est précédé d'un chevron gauche (<). Le texte du fichier rightfile est précédé d'un chevron droit (>).
L'exemple ci-dessous fait apparaître deux fichiers contenant les différences trouvées par la commande diff :
Si les deux fichiers à comparer sont identiques, la commande diff n'affiche rien.
Cette section ne présente que certaines des options de la commande diff(1). Pour plus d'informations, consultez les man Pages(1): User Commands.
Si vous souhaitez comparer simultanément trois versions différentes d'un même fichier, utilisez la commande diff3 de la façon suivante :
$ diff3 fichier1 fichier2 fichier3 |
diff3 compare les trois versions d'un même fichier et affiche les parties de texte différentes, en utilisant les codes suivants :
==== les trois fichiers sont différents
====1 fichier1 est différent
====2 fichier2 est différent
====3 fichier3 est différent
Si vous souhaitez comparer des fichiers très volumineux, utilisez la commande bdiff au lieu de diff. Son fonctionnement est similaire à celui de diff :
$ bdiff leftfile rightfile |
Utilisez bdiff au lieu de diff pour les fichiers dépassant 3500 lignes.