Accueil·Commandes du terminal

diff

Traitement de texte

Syntaxe

diff -u [old] [new]

Montre ce qui a changé entre deux fichiers ; le format unifié -u est celui qu'attendent patch et la revue de code, et le code de sortie vaut 1 en cas de différence, ce qui arrête un script sous set -e.

Options courantes

OptionSignification
-uUnified output, the format patch and code review expect
-rCompare two directory trees
-qOnly say whether the files differ
-wIgnore all whitespace
-iIgnore case
-NTreat a missing file as empty, which patches need

Exemples

diff -u old.conf new.conf > fix.patch

Writes a patch file.

diff -rq dirA dirB

Lists which files differ between two trees.

diff <(sort a.txt) <(sort b.txt)

Compares two files ignoring line order (bash).

Ils sont faits pour être chaînés avec des tubes. Trois commandes reliées sont souvent plus courtes qu’une seule qui fait tout.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait diff ?

Montre ce qui a changé entre deux fichiers ; le format unifié -u est celui qu'attendent patch et la revue de code, et le code de sortie vaut 1 en cas de différence, ce qui arrête un script sous set -e.

Q. Comment l’écrire ?

diff -u [old] [new] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 6 ici ; la liste complète est dans man diff. Cette commande relève de Traitement de texte.

Commandes liées

page man: man diff