Start·Terminal-Befehle

diff

Textverarbeitung

Aufruf

diff -u [old] [new]

Zeigt, was sich zwischen zwei Dateien geändert hat; das unified-Format -u erwarten patch und Code-Review, und bei Unterschieden ist der Exit-Code 1, was ein Skript mit set -e anhält.

Häufige Optionen

OptionBedeutung
-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

Beispiele

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).

Sie sind fürs Zusammenstecken mit Pipes gebaut. Drei verkettete Befehle sind meist kürzer als einer, der alles macht.

So liest man das

  • Eckige Klammern [ ] markieren einen Teil, den man weglassen kann.
  • Drei Punkte … heißen: mehrere sind erlaubt.
  • Optionen achten auf Groß- und Kleinschreibung — bei manchen Befehlen sind -r und -R verschieden.

Häufige Fragen

Q. Was macht diff?

Zeigt, was sich zwischen zwei Dateien geändert hat; das unified-Format -u erwarten patch und Code-Review, und bei Unterschieden ist der Exit-Code 1, was ein Skript mit set -e anhält.

Q. Wie gibt man ihn ein?

diff -u [old] [new] — eckige Klammern markieren, was wegfallen darf.

Q. Wie viele Optionen lohnen sich?

Hier stehen 6; die vollständige Liste steht in man diff. Der Befehl gehört zu Textverarbeitung.

Verwandte Befehle

man-Seite: man diff