DIFF(1)

NAME
diff - finde Unterschiede zwischen zwei Dateien

ÜBERSICHT
diff [option]... Von-Datei Nach-Datei

BESCHREIBUNG
Im einfachsten Fall vergleicht diff den Inhalt zweier Dateien, Von-Datei und Nach-Datei. Ein Dateiname - steht für von der Standardeingabe gelesenen Text. Als Spezialfall vergleicht diff - - eine Kopie der Standardeingabe mit sich selbst. Wenn Von-Datei ein Verzeichnis ist und Nach-Datei nicht, dann vergleicht diff die Datei in Von-Datei, deren Dateiname der von Nach-Datei ist und umgekehrt. Die Nicht-Verzeichnis-Datei darf nicht - sein. Sind sowohl Von-Datei als auch Nach-Datei Verzeichnisse, dann vergleicht diff korrespondierende Dateien in beiden Verzeichnissen in alphabetischer Ordnung; dieser Vergleich ist nicht rekursiv, wenn nicht die Option -r oder --recursive gegeben ist. diff vergleicht nie den tatsächlichen Inhalt eines Verzeichnisses, als wäre es eine eine Datei. Die Datei die voll spezifiziert ist, darf nicht die Standardeingabe sein, da diese namenlos ist und damit keine Datei gleichen Namens gefunden werden kann. diff-Optionen beginnen mit -, also dürfen normalerweise Von-Datei und Nach-Datei nicht mit - beginnen. Ein Argument -- jedoch behandelt alle folgenden Argumente als Dateinamen, selbst wenn sie mit - beginnen.

  Optionen
Unten findet man eine Zusammenfassung aller Optionen, die GNU diff akzeptiert. Die meisten Optionen haben zwei äquivalente Namen, wobei eine ein einzelner Buchstabe eingeleitet mit - ist, und die andere ein langer Namen eingeleitet mit --. Mehrere Einzelbuchstaben-Optionen können, wenn sie kein Argument nehmen, zu einem einzigen Kommandozeilenwort kombiniert werden: -ac ist äquivalent zu -a -c. Lange Optionsnamen können zu jedem eindeutigen Präfix ihres Namens abgekürzt werden. Eckige Klammern bedeuten, dass eine Option eine optionales Argument nehmen kann.

-zeilen
    Zeige zeilen (eine ganzen Zahl) Zeilen Kontext an. Diese Option legt selbst kein Ausgabeformat fest; sie hat keinen Effekt, wenn die nicht zusammen mit -c oder -u benutzt wird. Diese Option ist veraltet. Um ordentlich zu funktionieren, braucht patch typischerweise mindestens zwei Zeilen Kontext.

-a  Behandle alle Dateien als Text und vergleiche sie zeilenweise, auch wenn sie nicht Text zu sein scheinen.

-b  Ignoriere Änderungen in der Menge von Whitespace (Leerzeichen und Tabulatoren).

-B  Ignoriere Änderungen, die nur leere Zeilen einfügen oder löschen.

--brief
    Melde nur, ob die Dateien sich unterscheiden, nicht die Details der Unterschiede.

-c  Benutze das Kontext-Ausgabeformat.

-C zeilen

--context[=zeilen]
    Benutze das Kontext-Ausgabeformat, zeige zeilen (eine ganzen Zahl) Zeilen Kontext an, oder drei, wenn zeilen nicht gegeben ist. Um ordentlich zu funktionieren, braucht patch typischerweise mindestens zwei Zeilen Kontext.

--changed-group-format=format
    Nutze format, um eine Zeilengruppe, die sich unterscheidende Zeilen aus beiden Dateien enthält, im If-then-else-Format anzuzeigen.

-d  Ändere den Algorithmus, um vielleicht einen kleineren Satz von Änderungen zu finden. Das macht diff langsamer (manchmal viel langsamer).

-D name
    Erzeuge Ausgabe im zusammengeführten If-then-else-Format, abhängig vom Präprozessormakro name.

-e

--ed
    Erzeuge Ausgabe, die ein gültiges ed-Skript ist.

--exclude=muster
    Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf das muster passen.

--exclude-from=datei
    Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf irgendein Muster in datei passen.

--expand-tabs
    Expandiere Tabulatoren in der Ausgabe, um die Ausrichtung der Tabulatoren in den Eingabedateien zu erhalten.

-f  Erzeuge Ausgabe, die vage an ein ed-Skript erinnert, aber Änderungen in der Reihenfolge hat, in der sie in der Datei auftreten.

-F regaus
    Im Kontext- und vereinten Format: Zeige für jeden Batzen von Unterschieden etwas aus der letzten vorangehenden Zeile, auf das der reguläre Ausdruck regaus passt.

--forward-ed
    Erzeuge Ausgabe, die vage an ein ed-Skript erinnert, aber Änderungen in der Reihenfolge hat, in der sie in der Datei auftreten.

-h  Diese Option hat momentan keine Wirkung; sie ist nur für Kompatibilität zu Unix vorhanden.

-H  Benutze Heuristiken, um die Behandlung großer Dateien, die viele verstreute kleine Änderungen haben, zu beschleunigen.

--horizon-lines=zeilen
    Wirf die letzten zeilen Zeilen des gemeinsamen Präfix und ersten zeilen Zeilen des gemeinsamen Suffix nicht weg

-i  Ignoriere Änderungen in Groß-/Kleinschreibung.

-I regaus
    Ignoriere Änderungen, die nur Zeilen einfügen oder löschen, die regaus entsprechen.

--ifdef=name
    Erzeuge Ausgabe im zusammengeführten If-then-else-Format, abhängig vom Präprozessormakro name.

--ignore-all-space
    Ignoriere Whitespace (Leerzeichen und Tabulatoren) beim Vergleich von Zeilen.

--ignore-blank-lines
    Ignoriere Änderungen, die nur leere Zeilen einfügen oder löschen.

--ignore-case
    Ignoriere Änderungen in Groß-/Kleinschreibung.

--ignore-matching-lines=regaus
    Ignoriere Änderungen, die nur Zeilen einfügen oder löschen, die regaus entsprechen.

--ignore-space-change
    Ignoriere Änderungen in der Menge von Whitespace (Leerzeichen und Tabulatoren).

--initial-tab
    Gib einen Tabulatoren an Stelle eines Leerzeichens vor dem Text einer Zeile aus im Normal- oder Kontext-Format. Das führt dazu, das die Ausrichtung von Tabulatoren in der Zeile normal aussieht.

-l  Leite die Ausgabe durch pr, um sie zu paginieren.

-L marke

--label=marke
    Benutze marke an Stelle des Dateinamen im Kopf von Kontext- und vereintem Format.

--left-column
    Drucke nur die linke Spalte von zwei gemeinsamen Zeilen im Seite-an-Seite-Format.

--line-format=format
    Nutze format, um alle Eingabezeilen im If-then-else-Format anzuzeigen.

--minimal
    Ändere den Algorithmus, um vielleicht einen kleineren Satz von Änderungen zu finden. Das macht diff langsamer (manchmal viel langsamer).

-n  Gib Unterschiede im RCS-Format aus; wie -f, nur das jedes Kommando die Zahl der betroffenen Zeilen angibt.

-N

--new-file
    Beim Vergleich von Verzeichnissen: Wenn eine Datei nur in einem Verzeichnis gefunden wird, behandle sie als vorhanden aber leer im anderem Verzeichnis.

--new-group-format=format
    Nutze format, um eine Gruppe von Zeilen aus der zweiten Datei im If-then-else-Format auszugeben.

--new-line-format=format
    Nutze format, um eine Zeile aus der zweiten Datei im If-then-else-Format auszugeben.

--old-group-format=format
    Nutze format, um eine Gruppe von Zeilen aus der ersten Datei im If-then-else-Format auszugeben.

--old-line-format=format
    Nutze format, um eine Zeile aus der ersten Datei im If-then-else-Format auszugeben.

-p  Zeige für jede Änderung, in welcher C-Funktion sie ist.

-P  Beim Vergleich von Verzeichnissen: Wenn eine Datei nur im zweiten der beiden Verzeichnisse gefunden wird, behandle sie als vorhanden aber leer im anderem Verzeichnis.

--paginate
    Leite die Ausgabe durch pr, um sie zu paginieren.

-q  Melde nur, ob die Dateien sich unterscheiden, nicht die Details der Unterschiede.

-r  Beim Vergleich von Verzeichnissen: Vergleiche jegliche Unterverzeichnisse rekursiv.

--rcs
    Gib Unterschiede im RCS-Format aus; wie -f, nur das jedes Kommando die Zahl der betroffenen Zeilen angibt.

--recursive
    Beim Vergleich von Verzeichnissen: Vergleiche jegliche Unterverzeichnisse rekursiv.

--report-identical-files

-s  Melde, wenn zwei Dateien gleich sind.

-S datei
    Beim Vergleich von Verzeichnissen: Beginne mit Datei datei. Dies wird benutzt, um einen abgebrochenen Vergleich fortzusetzen.

--sdiff-merge-assist
    Gib zusätzliche Informationen aus, um sdiff zu helfen. sdiff benutzt diese, wenn es diff aufruft. Diese Option ist nicht dazu bestimmt, von Nutzern direkt aufgerufen zu werden.

--show-c-function
    Zeige für jede Änderung, in welcher C-Funktion sie ist.

--show-function-line=regaus
    Im Kontext- und vereinten Format: Zeige für jeden Batzen von Unterschieden etwas aus der letzten vorangehenden Zeile, auf das der reguläre Ausdruck regaus passt.

--side-by-side
    Benutze das Seite-an-Seite-Format.

--speed-large-files
    Benutze Heuristiken, um die Behandlung großer Dateien, die viele verstreute kleine Änderungen haben, zu beschleunigen.

--starting-file=file
    Beim Vergleich von Verzeichnissen: Beginne mit Datei datei. Dies wird benutzt, um einen abgebrochenen Vergleich fortzusetzen.

--suppress-common-lines
    Gib gemeinsame Zeilen im Seite-an-Seite-Format nicht aus.

-t  Expandiere Tabulatoren in der Ausgabe, um die Ausrichtung der Tabulatoren in den Eingabedateien zu erhalten.

-T  Gib einen Tabulatoren an Stelle eines Leerzeichens vor dem Text einer Zeile aus im Normal- oder Kontext-Format. Das führt dazu, das die Ausrichtung von Tabulatoren in der Zeile normal aussieht.

--text
    Behandle alle Dateien als Text und vergleiche sie zeilenweise, auch wenn sie nicht Text zu sein scheinen.

-u  Benutze das vereinte Ausgabeformat.

--unchanged-group-format=format
    Nutze format, um eine Gruppe von gemeinsamen Zeilen aus beiden Dateien im If-then-else-Format auszugeben.

--unchanged-line-format=format
    Nutze format, um im If-then-else-Format eine Zeile, die in beiden Dateien auftritt, auszugeben.

--unidirectional-new-file
    Beim Vergleich von Verzeichnissen: Wenn eine Datei nur im zweiten der beiden Verzeichnisse gefunden wird, behandle sie als vorhanden aber leer im anderem Verzeichnis.

-U lines

--unified[=zeilen]
    Benutzt das vereinte Ausgabeformat, zeige dabei zeilen (eine ganze Zahl) Zeilen Kontext, oder drei wenn zeilen nicht gegeben ist. Um ordentlich zu funktionieren, braucht patch typischerweise mindestens zwei Zeilen Kontext.

-v

--version
    Gib die Versionsnummer von diff aus.

-w  Ignoriere Whitespace (Leerzeichen und Tabulatoren) beim Vergleich von Zeilen.

-W spalten

--width=spalten
    Benutze eine Ausgabebreite von spalten Spalten im Seite-an-Seite-Format.

-x muster
    Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf das muster passen.

-X datei
    Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf irgendein Muster in datei passen.

-y  Benutze das Seite-an-Seite-Format.

SIEHE AUCH
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

DIAGNOSE
Ein Beendigungsstatus von 0 bedeutet, dass keine Unterschiede gefunden wurden, 1 heißt, es gab einige Unterschiede; eine 2 bedeutet Ärger.