So verwenden Sie Diff-Dateien unter Linux
![So verwenden Sie Diff-Dateien unter Linux](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-00-feature-image-640x375.webp)
Diff ist ein Befehlszeilentool für Unix-Systeme, mit dem Sie zwei Dateien oder Verzeichnisse vergleichen und die Unterschiede zwischen ihnen sehen können. Es ist ideal, um alte und neue Versionen von Dateien zu vergleichen, um zu sehen, was sich geändert hat. In diesem Artikel zeigen wir Ihnen, wie Sie diff
Dateien unter Linux einfach vergleichen können.
Vergleichen von Dateien mit diff
- Öffnen Sie ein Terminalfenster.
- Geben Sie
diff
und die Pfade zu zwei Dateien ein, die Sie vergleichen möchten. In diesem Fall vergleiche ich zwei kleine C-Programme auf meinem Desktop mit dem folgenden Befehl:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
![diff-terminal-1 Ein Terminalfenster mit einem Diff-Befehl.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-02-run-diff-program.webp)
- Drücken Sie , Enterum den Befehl zu senden. Die resultierende Anzeige zeigt Ihnen alle verschiedenen Zeilen zwischen den Dateien. Verglichene Zeilennummern werden als „1c1“ angezeigt, was bedeutet, dass die erste Zeile geändert wurde und die folgenden Unterschiede gefunden wurden.
![diff-terminal-2 Ein Terminalfenster, das die Ausgabe eines diff-Befehls zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-03-sample-diff-output.webp)
- Um eine Seite-an-Seite-Ansicht der Dateien und ihrer Unterschiede anzuzeigen, verwenden Sie das
-y
Flag nachdiff
. Zum Beispiel:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
![diff-terminal-3 Ein Terminalfenster, das einen Befehl zeigt, der ein visuelles Diff druckt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-04-visual-diff-command-flag.webp)
Jede Zeile mit einem Pipe-Symbol ( |
) ist eine Zeile mit einem Unterschied. Stellen Sie nur sicher, dass Sie zuerst Ihr Terminalfenster erweitern, da Sie sonst möglicherweise Schwierigkeiten haben, die Anzeige zu sehen.
![Diff-Terminal-4 Ein Terminalfenster, das die Ausgabe eines visuellen Diff-Befehls zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-05-sample-visual-diff-output.webp)
Vergleichen von Dateien mit Meld
Auf die Funktionalität von kann auch über Melddiff
zugegriffen werden , eine GUI für . In Anbetracht dessen, dass die Benutzeroberfläche von diff schwer zu handhaben sein kann, ist Meld ein nützliches Werkzeug.diff
- Installieren Sie Meld über die Befehlszeile, indem Sie das Terminal öffnen und Folgendes eingeben:
sudo apt -y install meld
oder
sudo dnf -y install meld
für RPM-basierte Distributionen.
Dadurch wird der apt-Paketmanager initialisiert und mit der Installation von Meld begonnen. Beachten Sie, dass das -y
Flag automatisch „Ja“ zu allen Eingabeaufforderungen sagt; Bitte entfernen Sie es, wenn Sie diese Eingabeaufforderungen lieber manuell bestätigen möchten.
![meld-install-meld-apt Ein Terminalfenster, das den Installationsbefehl für Meld zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-06-apt-command-install-meld.webp)
- Geben Sie Ihr Admin-Passwort ein, wenn Sie dazu aufgefordert werden. Wenn Sie die Eingabeaufforderung erneut sehen, ist die Installation abgeschlossen und Meld kann geöffnet werden.
![meld-install-meld-passwort Ein Terminalfenster, das den Installationsprozess für Meld zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-07-installing-meld.webp)
- Wenn Sie Meld öffnen, sehen Sie drei Optionen: Dateivergleich, Verzeichnisvergleich und Versionskontrollansicht. Klicken Sie auf „Datei“.
![meld_004 Ein Screenshot des Begrüßungsbildschirms von Meld.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-08-select-file-comparison-option-meld.webp)
- Es erscheinen zwei Dropdown-Menüs mit der Aufschrift „(None)“. Klicken Sie auf eine, um eine Datei zum Vergleich auszuwählen.
![meld_005 Ein Screenshot des Meld-Bildschirms mit einer Markierung auf der ersten Dateiauswahl.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-09-select-first-file-comparison-meld.webp)
- Klicken Sie auf das andere Dropdown-Menü, um eine zweite Datei zum Vergleich auszuwählen.
![meld_020 Ein Screenshot des Meld-Bildschirms mit einer Hervorhebung auf der zweiten Dateiauswahl.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-10-select-second-file-comparison-meld.webp)
- Klicken Sie auf die Schaltfläche „Vergleichen“.
![meld_006 Ein Screenshot des Bildschirms „Melden“ mit Hervorhebung der Schaltfläche „Vergleichen“.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-11-select-compare-button-meld.webp)
- Das nächste Fenster fasst alle gefundenen Unterschiede zwischen zwei Dateien zusammen. Rote Zeichen sind Unterschiede, und der blaue Hintergrund zeigt an, dass es in dieser Zeile einen Unterschied gibt. Ein grüner Hintergrund zeigt an, dass eine Zeile in einer Datei existiert, aber nicht in der anderen.
![meld_007 Ein Screenshot des Meld-Programms mit einer einfachen Vergleichsansicht von zwei Dateien.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-12-sample-meld-interface.webp)
- Um zwischen den Unterschieden zu navigieren, klicken Sie in der Menüleiste auf die Schaltflächen „Nach oben“ und „Nach unten“. Sie können auch direkt mit der Maus in das Dokument klicken.
![meld_008-2 Ein Screenshot des Meld-Programms, das die Diff-Navigationsschaltfläche hervorhebt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-13-select-diff-movement-meld.webp)
Bearbeiten von Dateien in Meld
Zusätzlich zum Vergleichen ermöglicht Ihnen Meld, verglichene Dateien zu ändern. Meld analysiert das Dokument weiterhin auf Änderungen, während Sie eine der Versionen ändern, und Sie können jederzeit Ctrl+ drücken, um die Änderungen rückgängig zu machen.Z
- Um Änderungen von einer Datei in eine andere zu kopieren, klicken Sie auf die kleinen schwarzen Pfeile zwischen den Änderungen. Wenn Sie beispielsweise auf den Pfeil auf der linken Seite klicken, wird die Zeile des linken Dokuments verwendet, um das Dokument auf der rechten Seite zu überschreiben.
![meld_009 Ein Screenshot des Meld-Programms mit den Diff-Auflösungsschaltflächen.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-14-select-changes-diff-meld.webp)
- Zeilen können auch ohne Überschreiben in Dokumente eingefügt werden. Wenn Sie die Taste gedrückt halten Ctrl, sehen Sie, wie sich die Pfeile aus dem letzten Schritt in Pluszeichen verwandeln. Klicken Sie auf das Symbol, um ein kleines Dialogfeld zu öffnen, in dem Sie auswählen können, wo eine neue Zeile eingefügt werden soll.
![meld_010 Ein Screenshot des Meld-Programms, das die Diff-Hinzufügungsaufforderung zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-15-insert-unique-line-comparison-meld.webp)
- Geben Sie schließlich direkt in Ihr Dokument ein. Setzen Sie einfach Ihren Cursor wie gewohnt ein und beginnen Sie mit der Eingabe.
- Wenn Sie mit den Änderungen fertig sind, klicken Sie auf die Schaltfläche „Speichern“, um Ihre Dateien zu speichern.
![meld_013 Ein Screenshot des Meld-Programms, das die Schaltfläche zum Speichern pro Datei hervorhebt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-16-save-file-comparison-meld.webp)
Erstellen von Diff-Dateien mit Meld und Diff
Abgesehen davon, dass Sie die Unterschiede zwischen zwei Dateien anzeigen, können Sie mit Meld auch „Diff-Dateien“ erstellen. Dies sind kleine Textstücke, die Anweisungen enthalten, wie Änderungen von einer Dateiversion auf eine andere angewendet werden können. Dies ist nützlich, wenn Sie Codeaktualisierungen schnell verteilen möchten, ohne das gesamte Quellarchiv erneut freizugeben.
- Öffnen Sie die beiden Dateien, die Sie vergleichen möchten.
![Ein Screenshot des Meld-Programms, das ein einfaches Diff zeigt. Ein Screenshot des Meld-Programms, das ein einfaches Diff zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-17-open-sample-diff-file-meld.webp)
- Klicken Sie auf das Menü Optionen in der oberen rechten Ecke des Fensters.
![Ein Screenshot, der die Optionsschaltfläche von Meld hervorhebt. Ein Screenshot, der die Optionsschaltfläche von Meld hervorhebt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-18-select-options-menu-meld.webp)
- Wählen Sie das Untermenü „Vergleich“.
![Ein Screenshot des Optionsmenüs von Meld mit einer Hervorhebung des Untermenüs „Vergleich“. Ein Screenshot des Optionsmenüs von Meld mit einer Hervorhebung des Untermenüs „Vergleich“.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-19-select-comparison-option-meld.webp)
- Klicken Sie auf die Unteroption „Als Patch formatieren“.
![Ein Screenshot des Untermenüs „Vergleich“ mit Hervorhebung der Unteroption „Format“. Ein Screenshot des Untermenüs „Vergleich“ mit Hervorhebung der Unteroption „Format“.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-20-select-format-patch-meld.webp)
- Dies öffnet ein kleines Fenster, in dem Meld die gesamte Diff-Datei zwischen Ihren beiden Dateien druckt. An dieser Stelle können Sie diesen Text entweder in Ihre Zwischenablage kopieren oder in einer Datei speichern. Um Letzteres zu tun, klicken Sie auf die Schaltfläche „Patch speichern“.
![Ein Screenshot des Meld's Patch-Unterfensters mit einer Hervorhebung auf dem Ein Screenshot des Meld's Patch-Unterfensters mit einer Hervorhebung auf dem](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-21-select-save-patch-meld.webp)
Während das Erstellen von Diff-Dateien in Meld einfach und unkompliziert ist, gibt es Fälle, in denen es möglicherweise nicht möglich ist, während der Codebearbeitung auf eine GUI zuzugreifen. Dazu können Sie mit dem diff
Programm auch eine Diff-Datei generieren.
- Öffnen Sie ein Terminal und prüfen Sie, ob es Unterschiede zwischen den beiden Dateien gibt:
diff hello.c hello-1.c
![Ein Terminal, das einen einfachen Unterschied zwischen zwei Dateien zeigt. Ein Terminal, das einen einfachen Unterschied zwischen zwei Dateien zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-22-check-diff-status.webp)
- Erstellen Sie eine einfache Diff-Datei, indem Sie das
-c
Flag verwenden:
diff -c hello.c hello-1.c > hello.diff
![Ein Terminal, das eine einfache Diff-Dateiausgabe zeigt. Ein Terminal, das eine einfache Diff-Dateiausgabe zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-23-create-simple-diff-file.webp)
- Verwenden Sie optional die
-u
Option, die die beiden Textströme zu einem einzigen einheitlichen Diff-Block kombiniert. Dies kann hilfreich sein, wenn Sie viel Code ändern und Speicherplatz sparen möchten:
diff -u hello.c hello-1.c > hello.diff
![Ein Terminal, das eine komplexere vereinheitlichte Diff-Ausgabe zeigt. Ein Terminal, das eine komplexere vereinheitlichte Diff-Ausgabe zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-24-create-unified-diff-file.webp)
Verwenden von Diff-Dateien zum Patchen des Quellcodes
Wie oben besprochen, können Sie mit einer Diff-Datei eine leicht gemeinsam nutzbare Zusammenfassung der Änderungen an Ihrem Quellcode erstellen. Diff selbst kann diese jedoch nicht auf vorhandene Dateien anwenden. Verwenden Sie dazu das Begleitprogramm von diff, patch
.
- Ermitteln Sie den ursprünglichen Quellcode, den die Diff-Datei zu ändern versucht:
cat hello.diff | sed 1q
![Ein Terminal, das den Header der ursprünglichen Quelldatei anzeigt. Ein Terminal, das den Header der ursprünglichen Quelldatei anzeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-25-determine-original-file-diff-file.webp)
- Erstellen Sie ein Backup Ihres ursprünglichen Quellcodes:
cp hello.c hello.c.old
- Führen Sie das Patch-Programm mit der Originaldatei für das erste Argument und der Diff-Datei für das zweite aus:
patch hello.c hello.diff
![Ein Terminal, das einen einfachen Patch-Befehl für eine einzelne Quelldatei zeigt. Ein Terminal, das einen einfachen Patch-Befehl für eine einzelne Quelldatei zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-26-simple-patch-diff-file.webp)
Es ist wichtig zu beachten, dass eine Diff-Datei auch Änderungen enthalten kann, die sich über mehrere Dateien erstrecken. Wenden Sie dies an, indem Sie alle für die Aktualisierung erforderlichen Dateien in einem einzigen Verzeichnis ablegen und ausführen patch < multi-file.diff
.
- Überprüfen Sie, ob das Patch-Programm Ihre Quelldatei erfolgreich aktualisiert hat, indem Sie sie mit Ihrem Backup vergleichen:
diff -y hello.c hello.c.old
![Ein Terminal, das den visuellen Unterschied zwischen der neuen und der ursprünglichen Quelldatei zeigt. Ein Terminal, das den visuellen Unterschied zwischen der neuen und der ursprünglichen Quelldatei zeigt.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-27-check-diff-result.webp)
FYI: Git ist ein leistungsstarkes plattformübergreifendes Versionskontrollprogramm. Erfahren Sie, wie Sie damit Ihre Quellcode-Repositories unter Linux verwalten können.
Häufig gestellte Fragen
Ist es möglich, eine Datei mehrfach zu patchen?
Ja. Es ist jedoch wichtig zu beachten, dass der Wert der Zeilennummer in einer Diff-Datei statisch ist. Wenn Sie beispielsweise einen Unterschied anwenden, der fünf Zeilen Code in Zeile 1 hinzufügt, wird die gesamte Datei um fünf Zeilen angepasst. Während moderne Tools Änderungen von einzelnen Diffs kompensieren können, kann die Anwendung von mehr als einem unnötige Codekonflikte verursachen.
Ist eine Diff-Datei einem Git-Patch ähnlich?
Ja. Sowohl diff als auch Git verwenden ein ähnliches Format für ihre Code-Patches. Daher können Sie die beiden Dienstprogramme austauschen, wenn Sie Aktualisierungen auf Ihren Quellcode anwenden. Laufen ist beispielsweise git apply hello.diff
gleichbedeutend mit Laufen patch < hello.diff
.
Können Sie Meld mit einem Versionskontrollprogramm wie Git verwenden?
Ja. Eine der leistungsstärksten Funktionen von Meld ist, dass es transparent mit jedem Versionskontrollprogramm zusammenarbeiten kann. Dies gibt Ihnen die Möglichkeit, außerhalb der Terminalschnittstelle einfach mit Ihren Repositories zu interagieren.
Drücken Sie dazu Ctrl+ Nund klicken Sie dann auf die Schaltfläche „Versionskontrollansicht“. Klicken Sie als Nächstes auf das Dropdown-Feld darunter und wählen Sie „Andere“. Dadurch wird ein kleines Fenster geöffnet, in dem Sie Ihr Git-Repository sehen und laden können.
Bildnachweis: Unsplash . Alle Screenshots von Ramces Red.
Schreibe einen Kommentar