Développé par | Laboratoires Bell et Douglas McIlroy |
---|---|
Formats lus | Fichier texte |
Formats écrits | Unidiff (en) |
Type |
Programme informatique Utilitaire UNIX (d) Comparaison de fichiers |
diff est une commande Unix qui permet de comparer deux fichiers et d’en afficher les différences.
Son utilisation typique consiste à calculer les changements entre une version d’un fichier et une version plus ancienne du même fichier. Diff affiche les changements ligne par ligne pour un fichier texte, mais ne gère pas toujours de façon conviviale la différence de Byte Order Mark. Les implémentations modernes prennent également en compte les fichiers binaires[1]. La sortie est appelée un "diff", un patch, ou une rustine puisque la sortie permet de transformer le premier fichier binaire en le second par le programme Unix patch.
La première version de diff a été livrée avec la 5e édition d’Unix en 1974, elle avait été écrite par Douglas McIlroy. L’article de recherche a été publié en 1976 et coécrit avec James W. Hunt qui a développé un prototype initial de la commande[2]. Diff peut être utilisé avec ed pour créer des scripts d’édition automatique.
En 1985, Larry Wall a écrit un utilitaire séparé, patch, qui généralise et étend la possibilité de modifier des fichiers à partir du résultat de diff.
La version du projet GNU a été écrite par Paul Eggert, Mike Haertel, David Hayes, Richard Stallman et Len Tower. Ce programme peut être utilisé par des outils de fusion de fichiers, par exemple par la préférence merge d’Unison.
GNU diff est distribué dans le paquet Diffutils, sous licence GPL.
GNU wdiff est une interface utilisateur à diff[3] qui permet de comparer deux fichiers sur la base de « mots » et non plus seulement sur la base de leurs caractères.