Beide Ordner A und B enthalten: 2, 5, 6, 7 (die ODER-Verknüpfung von nicht kollidierenden Dateinamen: eine bidirektionale Kopie (von demselben Rang, keine bestimmte Quelle oder ein bestimmtes Ziel) ohne Umbenennung;
Ordner A enthält außerdem: 1, 1-b, 3, 3-b(eigene Versionen und hinzugefügte). Ordner B enthält außerdem: 1, 1-a, 3, 3-a(eigene Versionen und hinzugefügte). (Der Bindestrich-a oder Bindestrich-b ist nur ein Platzhalter für die automatische Umbenennung, um Namenskollisionen zu umgehen, nicht wirklich wichtig. Jeder Suffix würde tun). Grundsätzlich enthält jeder Ordner alle Versionen aller Dateien (ohne dass ältere Dateien überschrieben wurden), unabhängig von ihrem Namen.
Wie könnte ich dieses Ergebnis erzielen? Ich habe mir 'meld' angesehen, funktionierte aber nicht wie erwartet (es wurde vorgeschlagen, vorhandene Dateien zu überschreiben, kann nicht umbenannt werden), und 'rsync' erscheint an sich asymmetrisch (wodurch der Quelle ein höherer Rang als dem Ziel zugewiesen wird). Ich brauche echte parithetische Verschmelzung ...
Vielen Dank im Voraus für jede Hilfe. Übrigens ... ein dedizierter vorhandener SW wäre mehr zu begrüßen, als heißes Wasser von Hand neu zu erfinden. Wenn es keine gibt, würde auch Scripting funktionieren. TY. Gatto
Das ist nicht sehr klar ... Ich versuche es mit einigen Zeilenumbrüchen (nur?) Zu bearbeiten, aber wenn Sie es näher erläutern können, könnte dies hilfreicher sein
Xen2050 vor 7 Jahren
0
1 Antwort auf die Frage
0
Xen2050
Schauen Sie sich die infoSeiten für einfaches Altes an cp. Ein Befehl wie
cp --archive --backup --suffix="-original" A/* B
Sollte jede Datei von A nach B kopiert werden, und wenn bereits Dateien vorhanden sind (in Konflikt stehende Dateinamen), wird die vorhandene Zieldatei in umbenannt [name]-original(dh es wird zuerst eine Sicherung durchgeführt).
Wenn Sie es erneut ausführen, verwenden Sie --no-clobberstattdessen --backupund --suffixsollten alle verbleibenden Dateien nur in B in A kopieren
cp --archive --no-clobber --exclude='*-original' B/* A
Dies sollte die [name]-originalDateien in B ausschließen . Vergewissern Sie sich, dass zu Beginn keine Dateien mit diesem Suffix vorhanden sind.
Und fügen Sie ein hinzu, um -vzu sehen, was los ist.
[Versucht - Rekursiv aber es war nicht ganz so wie erwartet]