So verwenden Sie Diff-Dateien unter Linux
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
- 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.
- 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
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.
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.
- 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.
- Wenn Sie Meld öffnen, sehen Sie drei Optionen: Dateivergleich, Verzeichnisvergleich und Versionskontrollansicht. Klicken Sie auf „Datei“.
- Es erscheinen zwei Dropdown-Menüs mit der Aufschrift „(None)“. Klicken Sie auf eine, um eine Datei zum Vergleich auszuwählen.
- Klicken Sie auf das andere Dropdown-Menü, um eine zweite Datei zum Vergleich auszuwählen.
- Klicken Sie auf die Schaltfläche „Vergleichen“.
- 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.
- 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.
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.
- 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.
- 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.
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.
- Klicken Sie auf das Menü Optionen in der oberen rechten Ecke des Fensters.
- Wählen Sie das Untermenü „Vergleich“.
- Klicken Sie auf die Unteroption „Als Patch formatieren“.
- 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“.
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
- Erstellen Sie eine einfache Diff-Datei, indem Sie das
-c
Flag verwenden:
diff -c hello.c hello-1.c > hello.diff
- 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
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
- 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
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
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