Verzeichnis "diff"?


8

Ich habe zwei Verzeichnisse, die verschiedene Versionen des gleichen Softwarepakets sind. Ich möchte alle Dateien / Verzeichnisse auflisten, die sich zwischen den beiden geändert haben, und diese Unterschiede dann in ein neues Verzeichnis kopieren.

Ich habe verschiedene Skripte ausprobiert md5sumund konnte diff -Nurqaber nicht das gewünschte Ergebnis erzielen.

Irgendwelche Empfehlungen?


Was bedeutet es, "einen Unterschied zu kopieren"?
cjm

Ich verstehe nicht, was Sie versuchen zu tun. diff -r(oder Variationen) gibt Ihnen die Unterschiede bereits. Was versuchst du mit ihnen zu machen?
Gilles 'SO - hör auf böse zu sein'

Antworten:


8

Sie sollten rsyncstattdessen verwenden. So etwas rsync -rv $old/ $new/sollte den Trick machen: Dadurch werden die Dateien gedruckt, über die kopiert werden soll.

Führen Sie mit zusätzlichem -neinen Trockenlauf aus, bevor Sie das neue Verzeichnis tatsächlich ändern.


5

Das beste Tool, das ich gefunden habe, ist die Verwendung von vim mit dem DirDiff- Plugin. Wenn Sie vimund verwenden vimdiff, ist dieses Plugin leicht zu erlernen.

Der Autor beschreibt es so:

Beschreibung

Dies ist ein Dienstprogramm, das einen rekursiven Diff für zwei Verzeichnisse ausführt und ein Diff- "Fenster" generiert. Basierend auf diesem Fenster können Sie verschiedene Diff-Vorgänge ausführen, z. B. zwei Dateien im Diff-Modus von Vim öffnen, die Datei oder das Verzeichnis rekursiv in das andere kopieren oder den Verzeichnisbaum aus dem Quellverzeichnis entfernen.

DirDiff ist vimdiffvergleichbar mit dem Vergleichen von zwei Verzeichnissen und allen darin enthaltenen Unterverzeichnissen und Dateien. Ich verwende dieses Tool häufig zum Vergleichen verschiedener Subversion-Zweige, Konfigurationsverzeichnisse auf verschiedenen Hosts usw.

Einen Screenshot finden Sie im Blog von dedm: http://dedm.livejournal.com/115224.html

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.