Ich suche nach etwas, das Verzeichnisse und Dateien vergleicht, wie es Beyond Compare für Windows tut.
Es ist hauptsächlich für die Quellcodeverwaltung gedacht, aber ich muss es auch für die Bereitstellung verwenden.
Ich suche nach etwas, das Verzeichnisse und Dateien vergleicht, wie es Beyond Compare für Windows tut.
Es ist hauptsächlich für die Quellcodeverwaltung gedacht, aber ich muss es auch für die Bereitstellung verwenden.
Antworten:
Meld ist ein Tool zum Vergleichen und Zusammenführen von Dateien und Verzeichnissen. Es ist eine GUI analog zu den Standard- diff
und patch
Befehlszeilentools. (Siehe man diff und man patch für mehr Details dazu)
Viele Quellcodeverwaltungssysteme (wie z. B. bzr
oder git
) können auch Unterschiede zwischen Versionen erstellen.
beyond compare
unten. überlegen imho meld
Diff ist dein Freund.
diff -ur path1 path2
Dadurch werden alle Dateien verglichen, die zwischen Pfad1 und Pfad2 identisch sind.
Wenn Sie ändern , -ur
um -urN
dann wird zeigen , dass auch den Inhalt von Dateien , die nur in einem der Wege sind.
colordiff
und benutztcolordiff -ur path1 path2
'Beyond Compare' ist auch für Linux verfügbar.
Überprüfen Sie die Download-URL: http://www.scootersoftware.com/download.php
Verwenden Sie den diff
Befehl:
diff -u file1 file2
diff -u
Wählt ein Format mit wenigen Kontextzeilen aus. Eine Ebene diff file1 file2
listet nur die unterschiedlichen Zeilen auf. Es gibt viele weitere Optionen zum Steuern des Ausgabeformats, zum Ignorieren von Nur-Leerzeichen-Unterschieden usw.
Wenn Sie die Ausgabe in eine Datei schreiben möchten, leiten Sie sie um:
diff -u file1 file2 >file1-file2.diff
Das Interface ist vielleicht nicht wirklich sexy, aber es ist extrem mächtig!
Und wenn Sie an andere * Commander (wie Norton oder ähnliche) gewöhnt wären, wären Sie nicht verloren.
Inspiriert von diesem Blogeintrag .
Verschiedene Dateien auflisten:
diff -qr folder1 folder2
Auflistung auch Inhalt:
diff -Naur folder1 folder2
Wenn sich die beiden Verzeichnisse nicht auf demselben Computer befinden, ist dies rsync
möglicherweise die einfachste Lösung. Wird normalerweise rsync
zum Synchronisieren von Verzeichnissen verwendet. Sie können es jedoch im ausführlichen und im trockenen Modus ausführen, sodass nur die Dateien aufgelistet werden, die geändert werden müssten.
rsync -rvnc --delete folder1 server:/path/to/folder2
Sie können aufgeben, c
wenn Sie Dateien basierend auf Zeitstempeln und Dateigrößen vergleichen möchten, um alles zu beschleunigen:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader ist ein kostenloses Tool (im Software Center verfügbar), das Ordnerinhalte im Vergleich anzeigt und mit vielen verschiedenen Optionen synchronisiert werden kann. Sie können beim Synchronisieren und Vergleichen filtern.
Um den Inhalt einer Datei zu vergleichen, markieren Sie einfach zwei Dateien. Wählen Sie "Datei"> "Inhalt vergleichen" und sie werden Buchstabe für Buchstabe verglichen. Das von krusader verwendete Standard-Vergleichstool ist das Standard-KDE-Tool " Kompare ". Sie können krusader so einstellen, dass jedes andere Vergleichstool verwendet wird - wie zum Beispiel eines der oben genannten.
Dies ist die umfassendste Lösung, die ich je gefunden habe und sie ist sehr praktisch. Und es unterstützt alle vom Midnight Commander verwendeten Funktionstasten (Norton Commander-Syntax).
Ich habe vor zwei Wochen etwas über Haschisch gelernt . Und es hat einige starke Vorteile:
meld
funktioniert es gut für sehr große Ordner. Wenn meld
die Benutzeroberfläche extrem langsam wird und nicht mehr reagiert (blockiert), arbeitet der Hash-Vorgang nur mit einer konstanten Geschwindigkeitrsync
erkennt hashdeep verschobene Dateien - Dateien mit demselben Inhalt, nur in einem anderen Verzeichnis.Ausführliche Ausgabe ist wie folgt:
...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG
hashdeep: Audit failed
Input files examined: 0
Known files expecting: 0
Files matched: 6233
Files partially matched: 0
Files moved: 3695
New files found: 19257
Known files not found: 4713
Ein guter Weg, um diesen Vergleich durchzuführen , ist die Verwendung von " find " mit " md5sum ", dann einem " diff ".
Beispiel:
Verwenden Sie find, um alle Dateien im Verzeichnis aufzulisten. Berechnen Sie dann den MD5-Hash für jede Datei und leiten Sie ihn an eine Datei weiter:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
Gehen Sie in einem anderen Verzeichnis genauso vor:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
Dann vergleiche das Ergebnis zweier Dateien mit "diff":
$diff dir1.txt dir2.txt
Diese Strategie ist sehr nützlich, wenn sich die beiden zu vergleichenden Verzeichnisse nicht auf demselben Computer befinden und Sie sicherstellen müssen, dass die Dateien in beiden Verzeichnissen gleich sind.
Ein weiterer guter Weg, die Arbeit zu erledigen, ist die Verwendung von Git
git diff --no-index dir1/ dir2/
Freundliche Grüße!
Versuchen Sie auch FreeFileSync . Es hat eine anständige Schnittstelle, akzeptable Vergleichsgeschwindigkeit, gute Filterung des Vergleichsergebnisses, verschiedene Arten der Syncrhronisierung. Es wird mit einem Ordnerüberwachungstool (RealTimeSync) ausgeliefert, mit dem FreeFileSync (eigentlich jeder Befehl oder jedes Skript) gestartet werden kann, wenn dieser bestimmte Ordner oder die darin enthaltenen Dateien geändert werden. Wirklich einen Versuch wert.
Mehr Infos über sie hier oder hier , wo Sie eine haben PPA auch
Von ihrer Seite, die wichtigsten Funktionen:
Vergleichen Sie Dateien (nach Datum oder nach Uhrzeit) und synchronisieren Sie sie.
Keine Einschränkungen: Es können beliebig viele Dateien synchronisiert werden.
Unicode-Unterstützung.
Netzwerkunterstützung.
Eingebaute Unterstützung für sehr lange Dateinamen (mehr als MAX_PATH = 260 Zeichen).
Synchronisationsdatenbank zur Weitergabe gelöschter Dateien und zur Konflikterkennung
Unterstützung für mehrere Ordnerpaare mit unterschiedlicher Konfiguration
Volle Unterstützung für Windows / Linux Symbolic Links und Windows Junction Points.
Schlanke und leicht zugängliche Benutzeroberfläche: Hoch optimiert für Geschwindigkeit und große Datenmengen.
Vollständig in C ++ codierte Algorithmen.
Alle Fortschrittsanzeigen auf maximale Leistung optimiert!
Erstellen Sie Stapeljobs für die automatische Synchronisierung mit oder ohne GUI.
Benutzerfreundlichkeit im Fokus:
Nur notwendige Funktionalität auf der Benutzeroberfläche: keine überladenen Menüs oder Icon-Dschungel.
Wählen Sie alle Ordner per Drag & Drop aus.
Zuletzt verwendete Konfiguration und Bildschirmeinstellungen werden automatisch gespeichert.
Verwalten und laden Sie verschiedene Konfigurationen per Drag & Drop, Load-Button oder Kommandozeile.
Doppelklicken, um eine externe Anwendung zu starten (z. B. Datei im Windows Explorer anzeigen)
Kopieren Sie alle Rasterdaten und fügen Sie sie als Text ein
Löschen Sie überflüssige / temporäre Dateien direkt im Hauptraster.
Kontextmenü mit der rechten Maustaste anklicken.
Umfassende Statusinformationen und Fehlermeldungen
Sortieren Sie die Dateilisten nach Name, Größe oder Datum.
Unterstützung für Dateigrößen von mehr als 4 GB.
Option zum Verschieben von Dateien in den Papierkorb, anstatt sie zu löschen / zu überschreiben.
Ignorieren Sie die Verzeichnisse "\ RECYCLER" und "\ System Volume Information" mit dem Standardfilter. (Nur Windows)
Lokalisierte Versionen sind für viele Sprachen verfügbar.
Vor dem Kopieren löschen: Vermeiden Sie Speicherplatzmangel bei großen Synchronisierungsaufträgen.
Filterfunktion zum Einschließen / Ausschließen von Dateien bei der Synchronisierung (ohne erneutes Vergleichen!).
Einschließen / Ausschließen bestimmter Dateien von der Synchronisierung vorübergehend.
Automatische Behandlung von Änderungen der Sommerzeit auf FAT / FAT32-Volumes.
Portable Version verfügbar (wählbar über Installer).
Native 64-Bit-Version.
Suchen Sie automatisch in FreeFileSync nach Updates.
Kopieren Sie gesperrte Dateien mit dem Windows Volume Shadow Copy Service. (Nur Windows)
Erstellen Sie regelmäßige Sicherungen mit den Makros% time%,% date% innerhalb der Verzeichnisnamen
Kopieren Sie beim Synchronisieren die Erstellungs- / Zugriffs- / Änderungszeiten für Dateien und Ordner
Erweiterte Sperrstrategie, um mehrere Synchronisationsvorgänge zu ermöglichen (z. B. mehrere Writer, dieselbe Netzwerkfreigabe)
Ich würde hinzufügen, dass es gelöschte Dateien verwalten und sie in den Papierkorb oder in einen vom Benutzer angegebenen Ordner verschieben kann. Um auf einen Nachteil hinzuweisen: Die Programmdokumentation konzentriert sich ziemlich stark auf Windows, weniger auf Linux. Aber es macht seine Arbeit gut.
Sie können diffuse verwenden:
sudo apt-get install diffuse
diffuse file1 file2
Sie können meld versuchen .
Es ist das Repository und bietet eine grafische Benutzeroberfläche für den Vergleich von Dateien oder Ordnern.
IMHO FreeFileSync ist sehr gut und nützlicher als Meld. Es ist schnell und stabil, kann kostengünstige Synchronisierungen durchführen und das Ergebnis des Vergleichs auch in eine CSV-Datei exportieren.
Plattformübergreifende, einfache, unkomplizierte und profilspeichernde Funktionen machen Jfilesync zu meiner ersten Wahl
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
Sie können den Befehl verwenden cmp
:
cmp -b "File_1.txt" "File_2.txt"
Ausgabe wäre
a b differ: byte 11, line 2 is 62 2 40
Sie können den Befehl diff verwenden :
diff -r --brief dir1 dir2
man diff
-r, --recursive
recursively compare any subdirectories found
-q, --brief
report only when files differ