Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Werniman
New Member
New Member
Posts: 1
Joined: 2021-08-16, 08:59 UTC

Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

Post by *Werniman »

Hallo,
Ich habe viele MP3s, Bilder, Videos etc auf dem Rechner. Da diese sich sowieso nicht nennenswert komprimieren lassen, mache ich Backups einfach nur filebasiert. Sprich: ich sichere die Files nicht mit Acronis TrueImage &Co, sondern spiegele die Daten einfach nur mit TC auf eine externe HDD. Soweit, sogut.

Da ich aber auch manchmal ganz gerne mal die Dateien umbenenne, habe ich die Files dann ständig identische Files unter ihrem alten Namen auf dem Backup und ihrem neuen Namen auf der normalen HDD. z.B. so:
Quell-HDD: neuerName.mp3, 3421kb
Backup: alterName.mp3, 3421kb

Nun könnte ich einfach mit der Sync-Funktion von TC einfach suchen lassen, welche Dateien ausschließlich auf dem Backup vorhanden sind, diese löschen und dann einfach nochmal einen neuen Sync-Vorgang auf die Backup-HDD starten. Wenn es sich nur um wenige Dateien handelt, mag das sogar die einfachste und schnellste Methode handeln. Aber bei vielen/großen Dateien ist das ziemlich umständlich.

Meine Frage: gibt es vielleicht ein Plugin für TC, mit dem das Programm in der Lage ist, bitgenaue Kopien unterschiedlichen Namens zu finden und die Kopien auf der Backup-HDD einfach nur entsprechend dem Dateinamen auf der Quell-HDD umzubenennen ? Sprich: Das Programm sollte merken, dass neuerName.mp3 identisch mit alterName.mp3 ist und die Datei einfach nur umbenennen.
User avatar
tuska
Power Member
Power Member
Posts: 3740
Joined: 2007-05-21, 12:17 UTC

Re: Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

Post by *tuska »

Hallo,

Ich würde Dir folgendes vorschlagen: Asymmetrische Synchronisation.
Hilfe - F1 im Verzeichnisse synchronisieren-Fenster wrote:Asymmetrisch
Wenn diese Option markiert ist, wird angenommen, dass rechts eine Kopie des linken Verzeichnisses angelegt werden soll.
Dateien, die links nicht vorhanden sind, werden rechts zum Löschen markiert. Dies ist sinnvoll für Backups.
Verwenden Sie diese Option nicht, wenn Sie Ihre Daten z. B. mit einem Notebook abgleichen wollen.
Teste das bitte mit ein paar Dateien, und zwar mit folgenden Einstellungen im "Verzeichnisse synchronisieren"-Fenster:
  • [✓] Leere Verzeichnisse
  • [✓] Asymmetrisch
  • [✓] Unterverzeichnisse
  • Anzeigen: Folgende Buttons sollen gedrückt sein(!)...
    - Von links nach rechts zu kopierende Dateien
    - Ungleiche Dateien
    - Von rechts nach links zu kopierende Dateien
    - doppelte
    - einzelne
  • Anzeigen: Dieser Button soll NICHT gedrückt sein(!)...
    - Gleiche Dateien
In dem angegebenen Kurzbeispiel würde sich im "Verzeichnisse synchronisieren"-Fenster folgendes ergeben:

Code: Select all

LINKS (Quell-HDD)      <=>  RECHTS (Backup)	| Vorschlag für:
------------------------------------------------------------------------------
			X   alterName.mp3	| Löschung der Datei im Backup
neuerName.mp3	       -> 			| Kopie von links nach rechts
------------------------------------------------------------------------------
Erst mit Klick auf den Button "Synchronisieren..." startet der Lösch- bzw. Kopiervorgang.
Bis zu diesem Zeitpunkt kann die Aktion mit Klick auf den Button "Schließen" noch abgebrochen werden.

Nach der Synchronisation befindet sich im rechten Fenster (Backup) eine 1:1 Kopie vom linken Fenster (Quell-HDD).
[Sollten TC-Dateikommentare STRG+Z - descript.ion Dateien ebenfalls vorhanden sein, dann sind entsprechende Regeln zu beachten].

Wichtig bezüglich asymmetrischer Synchronisation:
Die Quelle muß sich immer im linken TC-Fenster befinden, das Ziel (Backup) immer im rechten TC-Fenster!
Gruß,
Karl
User avatar
prian
Member
Member
Posts: 126
Joined: 2008-08-28, 11:23 UTC
Location: Bavaria

Re: Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

Post by *prian »

Aber das ist doch genau das was Werniman NICHT will.
Dazu muss man auch nicht extra auf Asynchron umstellen, einfach vergleichen, die "Blauen" (auf Ziel vorhanden, auf Quelle nicht mehr) markieren und löschen und dann den Rest synchronisieren. Löschen muss man eben manuell machen. Fertig.
Aber wie gesagt, das ist nicht erwünscht (ich mache das bei mir allerdings genau so).

Gesucht ist also (so habe ich es verstanden), ein Plugin, das erkennt, dass neuer_name.mp3 identisch ist mit alter_name.mp3 und dann auf dem Ziellaufwerk aus alter_name.mp3 durch Umbenennen neuer_name.mp3 macht und sich das kopieren schenkt.

Ich kenne jetzt kein solches Plugin.
AMD Ryzen 9 5950X, 64GB RAM, Asus ROG B550-E Gaming, ASUS TUF RTX 3080Ti OC
Win10 Pro: WD Black SN850 1TB (M.2 NVMe), Crucial MX500 4000GB, WD40EFRX 4TB, WD DC H530 14TB
OpenSuse TumbleWeed: Crucial MX500 2000GB
User avatar
Wilhelm M.
Power Member
Power Member
Posts: 990
Joined: 2003-06-05, 10:45 UTC

Re: Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

Post by *Wilhelm M. »

Kenne auch keines. Liegt wohl daran, dass das Haupkriterium für "gleich" oder "verschieden" bei allen Synchronisierern (die ich kenne), der Dateiname ist. Alle anderen Kriterien kann man auswählen, aber der Name ist immer der Ausgangspunkt. Soweit ich weiß.
Grüße/Regards,
Wilhelm
User avatar
tuska
Power Member
Power Member
Posts: 3740
Joined: 2007-05-21, 12:17 UTC

Re: Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

Post by *tuska »

prian wrote: 2021-08-17, 06:21 UTC Aber das ist doch genau das was Werniman NICHT will.
Ja, das ist mir schon klar.
Leider habe ich nicht erwähnt, dass mir ebenfalls kein Plugin bekannt ist, welches den Wunsch abdecken könnte.

Ich habe aber eine Alternativlösung aufgezeigt, welche ein 1:1 Backup auf einfache Weise erzeugen könnte.

Weiters gäbe es noch die Möglichkeit, bereits mit einem Klick auf einen Button das "Verzeichnisse synchronisieren"-Fenster
in einem separaten Task öffnen zu lassen und den Vergleich sofort und ohne weiteren Klick auf den Button "Vergleichen" starten zu lassen.
Für diesen Zweck habe ich mir zusätzlich auch noch die Tastenkombination ALT+S eingerichtet.
Ich erledige meine Backups seit Jahren mit dieser Methode.
BUTTON (ohne Tastenkombination ALT+S) und Erläuterung der Parameter

Code: Select all

TOTALCMD#BAR#DATA
%COMMANDER_EXE%
/S=S:= "%X%Z%P" "%T"
TOTALCMD.EXE,32
AKTUELLE Verzeichnisse synchronisieren/sep. Task!|Vergleich startet SOFORT!|"Verzeichnisse synchronisieren"-Fenster:|– LINKS: F3, RECHTS: Umsch+F3 zeigt Datei(en) im Lister an...|– Mehrfachmarkierung möglich!|https://ghisler.ch/board/viewtopic.php?f=2&t=75185


-1
Button erstellen:
  1. Markiere den Text in grüner Schrift (klicke auf "ALLES AUSWÄHLEN" rechts neben CODE:)
  2. Kopiere den Code in die Zwischenablage (drücke Strg+C)
  3. Tätige einen Rechtsklick auf einen freien Platz in der Buttonbar (zB nach dem letzten Button oder zwischen den Buttons)
  4. Klicke auf den Menüpunkt "Einfügen"
  5. [Option: Zeige mit dem Cursor (etwas länger) auf den neu erstellten Button: "Tooltip" erscheint (-> Beschreibung zum Button)
    Beim Tooltip sind max. 259 Zeichen gestattet]
  6. Siehe auch: Erklärung zu TOTALCMD#BAR#DATA
 
Erläuterung: %COMMANDER_EXE% /S=S:= "%X%Z%P" "%T"

Code: Select all

%COMMANDER_EXE%		Hilfe - F1 -> Suchen: COMMANDER_EXE -> Umgebungsvariablen ->
			2. Interne Total Commander-Variablen: %COMMANDER_EXE% Total Commander-Dateiname inkl. Pfad
			Beispiel: %COMMANDER_EXE% in TC-Kommandozeile, ENTER startet neue TC-Instanz
----------------------------------------------------------------------------------------------------------------------------
/S=S:=			Hilfe - F1 -> Suchen: Kommandozeilenparameter -> Klick in das Thema, Strg+F - Suche nach: /S=S:=
			/S=S Startet "Verzeichnisse Synchronisieren" direkt, akzeptiert 2 Pfade als Parameter,
			oder alternativ einen Einstellungsnamen in der Form /S=S:Einstellungsname.
			Beginnt der Parameter mit einem Gleichzeichen "=", z. B. /S=S:=Einstellungsname ,
			so startet die Vergleichsfunktion sofort. Besteht der Parameter nur aus einem Gleichzeichen /S=S:= ,
			startet der Vergleich mit den übergebenen Verzeichnissen und zuletzt benutzten Einstellungen.
----------------------------------------------------------------------------------------------------------------------------
"%X%Z%P" "%T"	Hilfe - F1 -> Suchen: Buttonbar -> Dialogbox: Konfigurieren: Buttonbar ändern,
			Klick in das Thema, Strg+F - Suche nach: %X

%X Interpretiert die folgenden Parameter nach diesem Parameter als links/rechts statt Quelle/Ziel:

   %P, %p (linker Pfad), %T, %t (rechter Pfad), %N, %n (linker Name), %M, %m (rechter Name),
   %S, %s (linke markierte Dateien), %R, %r (rechte markierte Dateien)
   Beispiel: %X%P %T  sendet den linken und rechten Pfad z. B. an ein externes Synchronisierprogramm
   
%Z irgendwo in den Parametern: Erlaubt die Übergabe von Archivnamen als Parameter via %P oder %T
   Beispiel: %Z%P übergibt Archivnamen an Programm wenn das aktive Dateifenster ein Archiv anzeigt
Tastenkombination/Shortcut: ALT+S (Tastenkombinationen umdefinieren)

Um den "Synchronisierungs-Button" mit einem Shortcut aufrufen zu können, ist es erforderlich einen em_Befehl zu erstellen.
Der em_Befehl darf keine Leerzeichen enthalten(!). Man verwendet dieselben Parameter wie für den oben angeführten Button.

Die Erstellung/Bearbeitung eines em_Kommandos ist zB unter Verwendung des CommandBrowsers möglich:
Einfach einen Button mit Kommando: cm_CommandBrowser anlegen und den Button aufrufen ODER
einfach den Befehl cm_CommandBrowser in die TC-Kommandozeile eingeben und ENTER drücken.
Links unten, und zwar unter Kategorie auf den Eintrag: usercmd.ini klicken (dort werden selbst erstellte em_Kommandos gelistet).

Nach Fertigstellung des em_Befehles, zB "em_AKTUELLE_Verz._synchronisieren" (ohne Anführungszeichen) kann man diesem
einen Shortcut zuweisen, und zwar wie folgt:

Vor Zuweisung eines Shortcuts sollte man sich noch einen Überblick verschaffen, welche bereits vergeben wurden, und zwar
- über Menü "Hilfe" - "Tastatur"
- Datei "TASTEN.TXT" (die sich im selben Ordner befindet, wie zB die TOTALCMD.EXE)

Menü "Konfigurieren" - "Einstellungen..." - "Diverses" - Tastenkombinationen umdefinieren:
- Eine Tastenkombination auswählen, zB ALT+S
- Bei "Befehl" rechts auf die Lupe klicken
- Links unter "Kategorie" ... Klick auf den Eintrag: usercmd.ini
- den gespeicherten Eintrag: em_AKTUELLE_Verz._synchronisieren auswählen, dann "OK" anklicken
- WICHTIG: Jetzt auf den grünen Haken für "Speichern" klicken, danach "OK" anklicken
Ab jetzt kann mit ALT+S das "Verzeichnisse synchronisieren"-Fenster in einem separaten Task aufgerufen werden, etc.

Alternativ kann man aber einfach diese Einträge machen, denn dort werden die zuvor getätigten Erfassungen gespeichert:

usercmd.ini
In dieser Datei diesen Abschnitt zB am Ende des Textes eintragen (= Erstellung des em_Befehles).
Falls die Datei usercmd.ini nicht vorhanden ist, dann diese Datei mit einem Texteditor, zB Notepad erstellen.

Code: Select all

[em_AKTUELLE_Verz._synchronisieren]
button=TOTALCMD.EXE,32
cmd=%COMMANDER_EXE%
param=/S=S:= "%X%Z%P" "%T"
menu=AKTUELLE Verzeichnisse synchronisieren/sep. Task!|Vergleich startet SOFORT!|"Verzeichnisse synchronisieren"-Fenster:|– LINKS: F3, RECHTS: Umsch+F3 zeigt Datei(en) im Lister an...|– Mehrfachmarkierung möglich!|https://ghisler.ch/board/viewtopic.php?f=2&t=75185
Siehe auch:
FAQs: TCs' Benutzer-definierte Kommandos (BDK) (em_xxxxx) UserCmd.ini
 
wincmd.ini
In dieser Datei im Abschnitt [Shortcuts] diese eine Zeile ergänzen: A+S=em_AKTUELLE_Verz._synchronisieren
Falls der Abschnitt [Shortcuts] noch nicht vorhanden ist, dann mit einem Texteditor, zB Notepad erstellen.
Wichtig: Der Abschnitt [Shortcuts] darf in der Datei wincmd.ini nur einmal vorhanden sein!

Code: Select all

[Shortcuts]
A+S=em_AKTUELLE_Verz._synchronisieren
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Synchronisation: Umbenannte Dateien erkennen und am Ziel nur umbenennen ?

Post by *HolgerK »

Werniman wrote: 2021-08-16, 09:34 UTC Nun könnte ich einfach mit der Sync-Funktion von TC einfach suchen lassen, welche Dateien ausschließlich auf dem Backup vorhanden sind, diese löschen und dann einfach nochmal einen neuen Sync-Vorgang auf die Backup-HDD starten. Wenn es sich nur um wenige Dateien handelt, mag das sogar die einfachste und schnellste Methode handeln. Aber bei vielen/großen Dateien ist das ziemlich umständlich.
Ich mache mal darauf aufmerksam, dass man auch im Synchronisations-dialog umbenennen kann:
<F1> wrote:Dateien können direkt umbenannt werden, entweder durch 2 Klicks (kein Doppelklick) auf den Dateinamen, oder per Hotkey F6 (linke Datei) bzw. Umsch+F6 (rechte Datei)
Bei einer Synchronisation von vielen/großen Dateien (wobei der Begriff "gross" relativ ist und auch von der Geschwindigkeit der beiden Laufwerke abhängt), lohnt es sich evtl. das eigene Gedächtnis als Hilfe heranzuziehen (sofern zwischen altem Dateinamen und neuem Dateinamen noch eine erkennbare Korrelation existiert):

- Synchronisation aufrufen
- [doppelte] deaktivieren
-> es werden nur noch unterschiedliche Dateien angezeigt
- Auf die Zeile mit "NeuerDateiname" positionieren
- <F6>,<Strg+C>,<Esc>
- Auf die Zeile mit "AlterDateiname" positionieren
- <F6>,<Strg+V>,<Enter>
- (.. usw. durch manuelles Umbenennen der Singles im Zielverzeichnis weitermachen bis die Liste keine Singles mehr enthält )
- [doppelte] wieder aktivieren
- bei ungleichen oder mit "?" markierte Dateien manuell Kopierrichtung festlegen.
- Synchronisation starten.

Bei vielen umbenannten kleinen Dateien (3 MByte sind für mich eher klein) lohnt sich das nicht und asymmetrische Synchronisation ist da effizienter.
Bei vielen umbenannten großen Dateien (z.B Video-Dateien > 3GByte) kann das schon eher nützlich sein und einige Minuten/Stunden Kopierzeit einsparen.

Gruss
Holger
Make our planet great again
Post Reply