Si vous voulez revenir sur la PAGE PRéCéNTE.
DIFF(1) Manuel de l'utilisateur Linux DIFF(1)
NOM
diff - Trouver les différences entre des fichiers.
SYNOPSIS
diff [options] source cible
DESCRIPTION
Dans le cas le plus simple, diff compare le contenu du fichier source
et celui du fichier cible. Un nom de fichier remplacé par un tiret -
correspond à la lecture depuis l'entrée standard. Un cas particulier
est représenté par "diff --" qui compare une copie de l'entrée stan‐
dard avec elle-même.
Si la source est un répertoire, et pas la cible, alors diff compare le
fichier cible avec le fichier placé dans le répertoire source et dont
le nom soit identique à la cible. La situation réciproque est égale‐
ment possible. Le fichier indiqué (pas le répertoire) ne peut pas être
-. En effet, l'entrée standard n'a pas de nom et la correspondance
``nom à nom'' ne pourrait pas s'appliquer.
Si les deux fichiers source et cible sont des répertoires, diff compare
les fichiers correspondant dans les deux répertoires, dans l'ordre
alphabétique. Cette comparaison n'est pas récursive, à moins d'employer
l'option -r ou --recursive. diff ne compare jamais le contenu ``réel''
d'un répertoire en le considérant comme un fichier.
Les options de diff commencent par un tiret -, ainsi les fichiers
source et cible ne devraient pas commencer par un tiret -. Toutefois,
le double tiret -- est un argument spécial signifiant ``fin des
options'', ainsi des noms de fichiers commençant par un tiret peuvent
être mentionnés à sa suite.
Options
Voici une liste de l'ensemble des options que le diff GNU accepte. La
plupart des options ont deux noms équivalents, l'un constitué d'une
seule lettre précédée par -, et l'autre composé d'un nom long plus
explicite, précédé par --.
Plusieurs options avec lettre unique (sauf si elle prennent un argu‐
ment) peuvent être combinées en un seul mot de la ligne de commande ;
ainsi : -ac est équivalent à -a -c.
Les options avec un nom long peuvent être abrégées s'il n'y a pas
d'ambiguïté.
Les crochets ([ et ]) indiquent qu'une option prend éventuellement un
argument.
-nb (nb est un nombre entier) Afficher nb lignes de contexte. Cette
option ne précise pas le format de sortie par elle-même, elle
n'a pas d'effet si elle n'est pas combinée avec -c ou -u. Cette
option est obsolète. Pour fonctionner correctement, patch néces‐
site typiquement deux lignes de contexte.
-a Traiter tous les fichiers comme du texte, et les comparer
ligne-à-ligne, même s'ils semblent contenir des données
binaires.
-b Ne pas tenir compte des différences concernant des espaces
blancs.
-B Ne pas tenir compte des différences qui concernent des lignes
blanches.
--brief
Indiquer seulement si les fichiers diffèrent, pas les
différences elles-mêmes.
-c Utiliser le format de sortie contextuel.
-C nb
--context[=nb]
(nb est un nombre entier) Utiliser le format de sortie con‐
textuel en affichant nb lignes de texte. Par défaut nb vaut 3.
Pour fonctionner correctement, patch nécessite typiquement au
moins deux lignes de contexte.
--changed-group-format=format
Utiliser le format pour afficher un groupe de lignes contenant
des différences entre les deux fichiers. L'affichage est du type
si-alors-sinon (voir option -D)
-d Modifier l'algorithme pour trouver éventuellement des ensembles
de changements plus petits. Ceci rend diff plus lent (parfois
beaucoup plus lent).
-D nom Sortir les deux textes originaux regroupés. La différenciation
se fait par des directives de préprocesseur ifdef-then-else con‐
cernant l'existence, ou non, de la macro ayant le nom indiqué.
Par exemple on utilisera `diff -D Nouvelle_version
ancien_fichier.c nouveau_fichier.c' pour obtenir un fichier pou‐
vant être compilé au choix avec la constante symbolique Nou‐
velle_version.
-e
--ed Sortir un script valide pour ed.
--exclude=motif
Lors de la comparaison de répertoires, ignorer les fichiers et
les sous-répertoires dont le nom correspond au motif.
--exclude-from=fichier
Lors de la comparaison de répertoires, ignorer les fichiers et
les sous-répertoires dont le nom correspond à n'importe quel
motif indiqué dans le fichier.
--expand-tabs
Développer les tabulations en espaces en sortie, afin de
préserver l'alignement des tabulations des fichiers d'entrée.
-f S'arranger pour que la sortie ressemble vaguement à un script
ed, mais en préservant l'ordre des modifications du fichier.
-F regexp
Dans les formats contextuel et unifiés, pour chaque bloc de
différences, afficher quelques lignes précédentes qui correspon‐
dent à l'expression rationnelle regexp.
--forward-ed
S'arranger pour que la sortie ressemble vaguement à un script ed
mais en préservant l'ordre des modifications du fichier.
-h Cette option n'a aucun effet, il s'agit simplement de préserver
la compatibilité Unix.
-H Utiliser une heuristique accélérant le traitement des gros
fichiers ayant de nombreux petits changements dispersés.
--horizon-lines=nb
Ne pas éliminer les nb dernières lignes du préfixe commun, ni
les nb premières lignes du suffixe commun.
-i Ignore les différences entre majuscules et minuscules.
-I regexp
Ignorer les changements consistant seulement en insertion ou
suppression de lignes correspondant à l'expression régulière
regexp.
--ifdef=nom
Sortir les deux textes originaux regroupés. La différenciation
se fait par des directives de préprocesseur ifdef-then-else con‐
cernant l'existence, ou non, de la macro ayant le nom indiqué.
--ignore-all-space
Ignorer les espaces lors des comparaisons de lignes
--ignore-blank-lines
Ignorer les changements consistant uniquement en insertion ou
suppression de lignes blanches.
--ignore-case
Ignorer les différences entre majuscules et minuscules.
--ignore-matching-lines=regexp
Ignorer les changements consistant seulement en insertion ou
suppression de lignes correspondant à l'expression rationnelle
regexp.
--ignore-space-change
Ignorer les changements concernant le nombre d'espaces blanches.
--initial-tab
Sortir une tabulation plutôt qu'une espace avant le texte dans
le format normal ou contextuel. Ceci améliore la présentation
des alignements.
-l Envoyer la sortie à pr pour la paginer.
-L étiquette
--label=étiquette
Utiliser l'étiquette à la place du nom de fichier dans les en-
têtes des formats contextuels ou unifiés.
--left-column
N'afficher que la colone de gauche des lignes communes dans le
format side-by-side.
--line-format=format
Utiliser le format pour afficher toutes les lignes d'entrée dans
le format if-then-else.
--minimal
Modifier l'algorithme pour trouver éventuellement des ensembles
de changements plus petits. Ceci rend diff plus lent (parfois
beaucoup plus lent).
-n Sortir les différences au format RCS. Comme -f sauf que chaque
commande précise le nombre de lignes affectées.
-N
--new-file
Dans les comparaisons de répertoires, si un fichier ne se trouve
que dans un seul répertoire, considérer qu'il est présent, mais
vide dans l'autre répertoire.
--new-group-format=format
Utiliser le format pour sortir un groupe de lignes ne se trou‐
vant que dans le second fichier, dans le format if-then-else.
--new-line-format=format
Utiliser le format pour sortir une ligne ne se trouvant que dans
le second fichier, dans le format if-then-else.
--old-group-format=format
Utiliser le format pour sortir un groupe de lignes ne se trou‐
vant que dans le premier fichier, dans le format if-then-else.
--old-line-format=format
Utiliser le format pour sortir une ligne ne se trouvant que dans
le premier fichier, dans le format if-then-else.
-p Indiquer dans quelle fonction C se trouve chaque changement.
-P Dans les comparaisons de répertoires, si un fichier ne se trouve
que dans le second répertoire, considérer qu'il est présent,
mais vide dans l'autre répertoire.
--paginate
Envoyer la sortie à pr pour la paginer.
-q Indiquer seulement si les fichiers différent, pas les
différences elles-mêmes.
-r Lorsque l'on compare des répertoires, comparer également tous
les sous-répertoires récursivement.
--rcs Sortir les différences au format RCS. Comme -f sauf que chaque
commande précise le nombre de lignes affectées.
--recursive
Lorsque l'on compare des répertoires, comparer également tous
les sous-répertoires récursivement.
--report-identical-files
-s Indiquer lorsque deux fichiers sont identiques.
-S fichier
Lorsque l'on compare des répertoires, commencer par le
fichierindiqué. Ceci permet une reprise après une comparaison
interrompue.
--sdiff-merge-assist
Afficher des informations supplémentaires pour aider sdiff.
Celui-ci utilise cette option lorsqu'il invoque diff. L'util‐
isateur n'a aucune raison d'appeler cette option.
--show-c-function
Indiquer dans quelle fonction C se trouve chaque changement.
--show-function-line=regexp
Dans les formats contextuel et unifiés, pour chaque bloc de
différences, afficher quelques lignes précédentes correspondant
à l'expression rationnelle regexp.
--side-by-side
Utiliser le format de sortie côte-à-côte.
--speed-large-files
Utiliser une heuristique accélérant le traitement des gros
fichiers ayant de nombreux petits changements dispersés.
--starting-file=fichier
Lorsque l'on compare des répertoires, commencer par le
fichierindiqué. Ceci permet une reprise après une comparaison
interrompue.
--suppress-common-lines
Ne pas afficher les lignes communes dans le format side-by-side.
-t Développer les tabulations en espaces en sortie, afin de
préserver l'alignement des tabulations des fichiers d'entrée.
-T Sortir une tabulation plutôt qu'un espace avant le texte dans le
format normal ou contextuel. Ceci améliore la présentation des
alignements.
--text Traiter tous les fichiers comme du texte, et les comparer
ligne-à-ligne, même s'ils semblent contenir des données
binaires.
-u Utiliser le format de sortie unifié.
--unchanged-group-format=format
Utiliser le format pour sortir un groupe de lignes communes aux
deux fichiers, dans le format if-then-else.
--unchanged-line-format=format
Utiliser le format pour sortir une ligne commune aux deux
fichiers, dans le format if-then-else.
--unidirectional-new-file
Dans les comparaisons de répertoires, si un fichier ne se trouve
que dans le second répertoire, considérer qu'il est présent,
mais vide dans l'autre répertoire.
-U nb
--unified[=nb]
Utiliser le format unifié, en montrant nb lignes de contexte, ou
3 lignes si nb n'est pas précisé. Pour fonctionner correctement,
patch nécessite typiquement deux lignes de contexte
-v
--version
Afficher le numéro de version de diff.
-w Ignorer les espaces blancs lors de la comparaison de lignes.
-W nb
--width=nb
Utiliser une sortie ayant nb colonnes de texte dans le format
side-by-side.
-x motif
Lors de la comparaison de répertoires, ignorer les fichiers et
les sous-répertoires dont le nom correspond au motif.
-X file
Lors de la comparaison de répertoires, ignorer les fichiers et
les sous-répertoires dont le nom correspond à l'un quelconque
des motifs indiqués dans le fichier.
-y Utiliser l'affichage côte-à-côte (side-by-side).
VOIR AUSSI
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1)
DIAGNOSTIC
Un code de retour valant 0 signifie qu'aucune différence n'a été
trouvée, 1 signifie que des différences sont apparues, 2 indique une
erreur.
TRADUCTION
Christophe Blaess, 1999-2003.
diffutils 25 juillet 2003 DIFF(1)
|