Der Befehl diff
aus dem Paket diffutils
vergleicht Dateien Zeile für Zeile. Es ist sehr praktisch, wenn Sie überprüfen möchten, ob seit der letzten Sicherung kürzlich Änderungen an einer Datei vorgenommen wurden und welche. Ein Exit-Status von 0
bedeutet, dass keine Unterschiede gefunden wurden, 1
bedeutet, dass einige Unterschiede gefunden wurden, und 2
bedeutet Ärger. Und natürlich, falls es Änderungen gibt, diff
werde sie dir zeigen. Aber schauen wir uns einige Beispiele an.
Beispiel 1:Beide Dateien haben den gleichen Inhalt
Alice und Bob grillen beide und haben ihre Menüs veröffentlicht. Um zu entscheiden, welches Menü mir am besten gefallen würde, könnte ich die Menüs wie folgt vergleichen:
$ diff menu1 menu2
$ echo $?
0
$ cat menu{1,2}
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
Sehen Sie, beide servieren Spare Ribs, Brisket und Pulled Pork. Es gibt keinen Unterschied zwischen den beiden Dateien. Vielleicht sollten sich Alice und Bob zusammentun, um ein richtig großes Barbecue zu veranstalten.
Als Eve hörte, dass Alice und Bob Partys veranstalteten, wurde sie eifersüchtig und beschloss, auch ein Barbecue zu veranstalten. Ihr Menü kommt mit der Datei menu3
. Mal sehen, was die Unterschiede in ihrer Speisekarte im Vergleich zu Alice und Bob sind.
Beispiel 2:Jetzt sind Getränke im Spiel
$ diff menu1 menu3
4a5,8
>
> # Drinks
> * Soda
> * Beer
$ echo $?
1
$
Jetzt gibt es Unterschiede. Und mit der Ausgabe in der ersten Zeile diff
sagt uns, was (a) zu menu1
hinzugefügt werden muss sodass es den gleichen Inhalt wie menu3
hat . Also 4a5,8
bedeutet, dass Sie einige Zeilen nach Zeile 4 in menu1
hinzufügen müssen sodass es wie die Zeilen 5-8 in menu3
aussieht .
Beim Vertauschen der Position der Dateien sieht die Ausgabe anders aus:
$ diff menu3 menu1
5,8d4
<
< # Drinks
< * Soda
< * Beer
Jetzt diff
sagt uns, dass die Zeilen 5-8 in menu3
müssen gelöscht werden (d), um die Datei mit menu1
identisch zu machen .
Beispiel 3:Wenn es etwas zu ändern gibt
Ich habe menu1
bearbeitet und menu2
wieder so aussehen:
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Pulled Pork
* Pulled Pork
Diesmal diff
zeigt uns, welche Zeile geändert werden muss (c), damit beide Dateien gleich aussehen:
$ diff menu1 menu2
3c3
< * Brisket
---
> * Pulled Pork
Einpacken
Der diff
Der Befehl ist ein einfach und flexibel zu verwendendes Werkzeug, um Dateien Zeile für Zeile zu vergleichen. Sehen Sie sich diff(1)
an um herauszufinden, was man sonst noch mit diff
machen kann .
[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ]