Verzeichnisse vergleichen

Viktor Dite, Autor des Beitrags

Von - Publiziert in Linux
Dipl. Informatiker und Tech-Blogger seit 2006.


Manchmal stellst Du Dir die Frage: worin liegt der Unterschied zwischen zwei Verzeichnissen und deren Dateiinhalten? Sinnvoll ist es bspw. bei Updates, wenn Du herausfinden willst, a) welche Dateien sich geändert haben und b) was sich darin verändert hat. Doch womit lassen sich am besten zwei Verzeichnisse vergleichen?

Verzeichnisse vergleichen mit diff

Unixbasierte Systeme sind einfach Klasse. Für alles gibt es eine einfache Lösung! Mit diff lassen sich ganz einfach zwei Verzeichnisse vergleichen. Angenommen Du hast die zwei Verzeichnisse:

~/tmp/test1/
~/tmp/test2/

Dann kannst Du mit diff die Verzeichnisse vergleichen in dem Du es wie folgend benutzt.
diff -r ~/tmp/test1/ ~/tmp/test2/

Als Ergebnis bekommst Du die Unterschiede auf Dateiebene als auch auf Dateiinhaltsebene. Es wird Dir also angezeigt, welche Dateien neu sind oder weggefallen sind und wenn sich innerhalb der Dateien inhaltlich etwas geändert hat – und wenn, an welcher Stelle.

diff: Treffer mit RegEx ausschließen

Wenn Du bestimmte Treffer beim Vergleichen von Verzeichnissen auschließen möchtest, bietet diff mit der -I 'RE' Option1 die Möglichkeit eine Zeile mit Hilfe eines regulären Ausdrucks auszuschließen.

Der reguläre Ausdruck RE ist bei diff aber nicht vollwertig, so dass bspw. ODER Ausdrücke nicht möglich sind. Hier könnte man jetzt anfangen die Geschichte mit egrep zu erweitern, doch es geht viel viel viel einfacher!

Mehrere RegEx Ausdrücke im diff

Die -I 'RE' Option lässt sich nämlich beliebig oft hintereinanderreihen!

Also statt:

diff -r -I '(RE1)|(RE2)|(REn)' folder1 folder2

einfach so:

diff -r -I 'RE1' -I 'RE2' ... -I 'REn' folder1 folder2

1RE <=> RegEx Ausdruck

verzeichnisse vergleichen


Letzte Änderung: