Verzeichnissynchronisierung: Bestimmtes Verz. ausschließen

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
User avatar
Dalai
Power Member
Power Member
Posts: 9444
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Verzeichnissynchronisierung: Bestimmtes Verz. ausschließen

Post by *Dalai »

Hallo Leute,

ich bekomme es nicht hin, ein ganz bestimmtes Verzeichnis von der Synchronisierung auszuschließen. Vielleicht stelle ich mich zu doof an, keine Ahnung.

Konkrete Aufgabe: Synchronisiere E:\Profiles mit S:\Profiles, schließe dabei einige Dateien sowie die Verzeichnisse Cache\ und cache2\ (irgendwo im Baum) sowie konkret FlashGet\Obelix\ von der Synchronisierung aus. Probiert habe ich

Code: Select all

*.*|*.sqlite-* Cache\ cache2\ FlashGet\Obelix\
Die Verzeichnisse Cache\ und cache2\ werden einwandfrei ausgenommen, aber egal, ob ich .\FlashGet\Obelix\ oder \FlashGet\Obelix\ oder FlashGet\Obelix\ schreibe, das Verzeichnis wird nicht ausgenommen.

Was ich nicht möchte:
  • Obelix\ generell ausnehmen, denn irgendwo im Baum könnte ein Verzeichnis mit diesem Namen sein, und das muss natürlich synchronisiert werden.
  • Dieses Verzeichnis auf die Ignorierliste setzen, denn sehen möchte ich das ganz normal, nur eben nicht synchronisieren.
Wo ist mein Fehler? Oder kann der TC das nicht? Gerade letzteres kann ich mir kaum vorstellen. Falls dem aber doch so sein sollte, so rege ich an, dass sich der TC etwas mehr an der exclude-Syntax von rsync orientiert, denn die ist in einem solchen Fall deutlich einfacher (/FlashGet/Obelix/ würde dort passen).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Re: Verzeichnissynchronisierung: Bestimmtes Verz. ausschließ

Post by *milo1012 »

Dalai wrote:

Code: Select all

*.*|*.sqlite-* Cache\ cache2\ FlashGet\Obelix\
Ist mir neu dass der Ausschluss ohne Platzhalter/Wildcards jeweils vorne und hinten funktioniert, aber ich benutze diese Syntax auch nur sehr selten.
Ein Schnelltest in einem normalen Verzeichnis zeigt dass ab dem zweiten Wert (oder nur der letzte?) nach der Pipe, also nach dem Leerzeichen, mit Wildcards gearbeitet werden muss, also:

Code: Select all

*.*|*.sqlite-* Cache\ cache2\ *FlashGet\Obelix\*
könnte vielleicht funktionieren.
TC plugins: PCREsearch and RegXtract
User avatar
Dalai
Power Member
Power Member
Posts: 9444
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Verzeichnissynchronisierung: Bestimmtes Verz. ausschließ

Post by *Dalai »

milo1012 wrote:Ist mir neu dass der Ausschluss ohne Platzhalter/Wildcards jeweils vorne und hinten funktioniert [...]
Das funktioniert schon immer. Man muss Verzeichnisse nur als solche kenntlich machen, indem man ihnen einen Backslash mitgibt (was sie - sprachlich korinthenkackerisch korrekt - eigentlich zu einem Pfad macht).
Ein Schnelltest in einem normalen Verzeichnis zeigt dass ab dem zweiten Wert (oder nur der letzte?) nach der Pipe, also nach dem Leerzeichen, mit Wildcards gearbeitet werden muss
Nein, das Problem ist ein anderes: es ist ein Unterverzeichnis.

Code: Select all

*.*|*.sqlite-* Cache\ cache2\ Obelix\
funktioniert einwandfrei, und schließt das gewünschte Verzeichnis aus, aber wie ich schon schrieb, will ich das so nicht (weil es alle Verzeichnisse dieses Namens im Baum ausnimmt).

Code: Select all

*.*|*.sqlite-* Cache\ cache2\ *FlashGet\Obelix\*
könnte vielleicht funktionieren.
Nein, das tut nicht.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Re: Verzeichnissynchronisierung: Bestimmtes Verz. ausschließ

Post by *milo1012 »

Dalai wrote:Das funktioniert schon immer. Man muss Verzeichnisse nur als solche kenntlich machen, indem man ihnen einen Backslash mitgibt (was sie - sprachlich korinthenkackerisch korrekt - eigentlich zu einem Pfad macht).
Das ist klar, nur ist für mich die Wildcard-Syntax dann unlogisch.
Wenn Cache\ und cache2\ laut Aussage irgendwo im Baum liegen sollen, ist es schon merkwürdig wieso das funktioniert ohne vorangestelltes *.

Wenn ich in einem Verzeichnis habe: file1, file2, file99
kann ich *.*|file99 nutzen um file99 auszuschließen, aber nicht *.*|99, es muss dann schon *.*|*99 sein.

Sobald man aber Verzeichnisse als solche kenntlich macht, ist das von der Logik her etwas komisch,
weil offenbar nie der ganze Pfad relativ zum Start-Verzeichnis genommen wird, sondern jeder Verzeichnisname "für sich" geprüft wird,
egal wie tief er im Baum steckt.
Dazu fehlt mir auch wieder eine vernünftige Doku in der Hilfe.
Ist ja an sich richtig, das Verzeichnis steckt ja dann genau wie eine Datei in einem anderen Verzeichnis und ist mit seinem Namen identifiziert,
aber IMO sollten Verzeichnisse eben gesondert behandelt werden,
sonst kann ich mit der Maske eben solche Fälle nicht vernünftig bearbeiten.

Zurück zum Problem:
Dalai wrote:Nein, das Problem ist ein anderes: es ist ein Unterverzeichnis.
Ja. Scheint wirklich so zu sein dass TC nur den ersten Backslash interpretiert und dann brav den Filter anwendet, aber Unterverzeichnisse die noch folgen eben nicht mal mit der Kneifzange anfasst.
Eindeutig eine Limitierung.
Würde TC wie oben beschrieben das ganze Schema auf den relativen Pfad anwenden, könnte man eben Dinge nutzen wie "FlashGet\Obelix\*"

Dabei fällt mir grad noch auf:
Wieso funktionieren eigentlich keine RegEx-Ausdrücke in der Maske?
<(a|b) sagt mir "Funktion nicht unterstützt ...",
obwohl in der Hilfe auf "Dateien wählen" verwiesen wird.
Das ist schade, weil es eine Alternative wäre, auch wenn die Auflösung des Baums wohl da auch erst freigeschaltet werden müsste.
TC plugins: PCREsearch and RegXtract
User avatar
Dalai
Power Member
Power Member
Posts: 9444
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Verzeichnissynchronisierung: Bestimmtes Verz. ausschließ

Post by *Dalai »

milo1012 wrote:Sobald man aber Verzeichnisse als solche kenntlich macht, ist das von der Logik her etwas komisch,
weil offenbar nie der ganze Pfad relativ zum Start-Verzeichnis genommen wird, sondern jeder Verzeichnisname "für sich" geprüft wird, egal wie tief er im Baum steckt.
Den Eindruck habe ich auch. Vermutlich extrahiert TC den Namen jedes Verzeichnisses (so dass nur eine Ebene übrig bleibt) und vergleicht dieses mit der Ausschlussliste.
Dazu fehlt mir auch wieder eine vernünftige Doku in der Hilfe.
Allerdings.
Würde TC wie oben beschrieben das ganze Schema auf den relativen Pfad anwenden, könnte man eben Dinge nutzen wie "FlashGet\Obelix\*"
Jep, so wie rsync das auch macht. Alle Ausschlüsse werden immer relativ zum Sync-Root verarbeitet.
Dabei fällt mir grad noch auf:
Wieso funktionieren eigentlich keine RegEx-Ausdrücke in der Maske?
<(a|b) sagt mir "Funktion nicht unterstützt ...",
obwohl in der Hilfe auf "Dateien wählen" verwiesen wird.
Vermutlich weil in einer der letzten Versionen die RegEx im "Dateien wählen"-Dialog hinzukamen, aber keiner berücksichtigte, dass die Synchronisierung diese Syntax ebenfalls verwendet ;).

MfG Dalai
Last edited by Dalai on 2014-09-25, 14:21 UTC, edited 1 time in total.
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Dalai
Power Member
Power Member
Posts: 9444
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

@ghisler: Geht der Ausschluss von Unterverzeichnissen? Wenn ja, wie? Wenn nicht, wäre es klasse, wenn das eingebaut werden könnte. Ich hätte da noch weitere Ideen für eine Überarbeitung der Dateitypen der Verzeichnissynchronisierung (z.B. separater Dialog mit zeilenweiser Auflistung der Ein-/Ausschlüsse) - aber das ist hier OT und ich sollte das bei Gelegenheit in einem separaten Thema ausführlicher darlegen.

Unabhängig davon bitte ich um eine ausführlichere Dokumentation der Möglichkeiten der Verzeichnissynchronisierung in Bezug auf die Ein-/Ausschlüsse in der Hilfe. Momentan ist es an der Stelle nämlich etwas sehr mager.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48199
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Die angegebenen Namen beziehen sich immer auf alle durchsuchten Verzeichnisse. Wenn man
*.* | Obelix\
angibt, werden alle Unterverzeichnisse mit Namen "Obelix" übersprungen, egal wo sie sich befinden. Ein spezifisches Unterverzeichnis wie
FlashGet\Obelix\
lässt sich leider nicht überspringen.
Author of Total Commander
https://www.ghisler.com
User avatar
Dalai
Power Member
Power Member
Posts: 9444
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

OK, das ist doof, und gar nicht TC-like, denn der kann ja sonst alles ;).

Dann muss ich dieses eine Verzeichnis FlashGet\ komplett ausschließen und mit cwrsync verarzten - muss ich nur vor dem Sync im TC daran denken.... Das hat aber den Vorteil, dass ich das Verzeichnis sehe (kein Eintrag in der Ignorierliste), es dennoch nicht in der Verzeichnissynchronisierung auftaucht, aber trotzdem irgendwie synchronisiert werden kann.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply