informationen:blog:inhalte_in_verzeichnissen_unter_linux_vergleichen

Inhalte in Verzeichnissen unter Linux vergleichen

Um mehrere Zwischenstände von Projekten zu vergleichen kann man das Tool diff benutzen. Bei den meisten Distributionen ist diff bereits in der Grundinstallation vorhanden.

In diesem Beispiel haben wir folgende Struktur angelegt.

$ tree blogbeitrag/
blogbeitrag/
├── verzeichnis1
│   └── Datei
└── verzeichnis2
    ├── Datei
    └── Datei2
 
3 directories, 3 files

verzeichnis1 und verzeichnis2 sind 2 verschiedene Stände unseres Projekts. Zum einen kann man die Dateien suchen die sich unterscheiden. Damit die Verzeichnisse rekursiv durchsucht werden, nutzen wir den Schalter r. Damit nur angezeigt wird welche Dateien verschieden sind, kann man den Schalter q nutzen.

$ cd blogbeitrag
$ diff -rq verzeichnis1/ verzeichnis2/
Dateien verzeichnis1/Datei und verzeichnis2/Datei sind verschieden.
Nur in verzeichnis2/: Datei2.

Das ganze kann man auch gleich mit Inhalten ausgeben. Einfach den Schalter q weglassen.

$ diff -r verzeichnis1/ verzeichnis2/
diff -r verzeichnis1/Datei verzeichnis2/Datei
1,2d0
< Beispieleintrag 2
< Und noch eine Zeile
Nur in verzeichnis2/: Datei2.

Und noch besser, wenn man gleich weiß wo die Änderungen in den Dateien sind.

$ diff -uNr verzeichnis1/ verzeichnis2/
diff -uNr verzeichnis1/Datei verzeichnis2/Datei
--- verzeichnis1/Datei	2016-05-13 23:41:32.566835850 +0200
+++ verzeichnis2/Datei	2016-05-13 23:36:43.046836572 +0200
@@ -1,2 +0,0 @@
-Beispieleintrag 2
-Und noch eine Zeile
diff -uNr verzeichnis1/Datei2 verzeichnis2/Datei2
--- verzeichnis1/Datei2	1970-01-01 01:00:00.000000000 +0100
+++ verzeichnis2/Datei2	2016-05-13 23:37:07.150836512 +0200
@@ -0,0 +1 @@
+Beispieleintrag

Mehr gibt es mittels man diff und die Kurzform via diff –help.

Wer es gerne mit mehr als zwei Farben und zum klicken möchte, der kann das Programm diffuse nutzen. Debian und Derivate können dies mittels apt installieren.

apt-get install diffuse