Ich stolpere häufiger über das Problem, wie man bei rsync Muster für include/exclude Verzeichnisse eingibt.
Abgesehen von RegEx selbst scheint es hier magische Regeln zu geben, die sich mir bisher nicht erschlossen haben.
Bei RegEx nutze ich gerne regex101 um diverse Dinge auszuprobieren und es hübsch bunt erklärt zu bekommen.
Gibt es sowas auch für Rsync?
Test-Plattform (wie regex101) um rsync folder patterns zu testen
Test-Plattform (wie regex101) um rsync folder patterns zu testen
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (backintime)
Teil des Upstream Betreuer Teams von Back In Time (backintime)
Re: Test-Plattform (wie regex101) um rsync folder patterns zu testen
Ich glaube das Problem ist, dass bei rsync nicht nur das pattern selber wichtig ist (was eine mischung aus bash wildcards und regex ist: https://manpages.debian.org/bullseye-ba ... HING_RULES) sondern dass wildcards evt auch von der bash interpretiert werden und das die reihenfolge von includes/excludes entscheident ist: https://manpages.debian.org/bullseye-ba ... LUDE_RULES
So ein Tool müsste also deinen Verzeichnisbaum kennen, die Shell die du verwendest, wie du das pattern escaped hast und nur dann könnte man das testen.
So ein Tool müsste also deinen Verzeichnisbaum kennen, die Shell die du verwendest, wie du das pattern escaped hast und nur dann könnte man das testen.
Re: Test-Plattform (wie regex101) um rsync folder patterns zu testen
Für rsync gibt es die Option --dry-run. Mit dieser Option zeigt die Ausgabe für rsync an, was rsync ohne die Option --dry-run tun würde. Damit könnte man also auch Ausdrücke testen ohne Schaden anrichten zu können.
Re: Test-Plattform (wie regex101) um rsync folder patterns zu testen
Ah daran hatte ich jetzt gar nicht gedacht! Sinnvoll ist dann wohl auch noch 2x --verbose, damit erhält man auch Infos warum eine Datei mitgenommen wurde oder nicht.chrbr hat geschrieben:04.04.2023 12:22:33Für rsync gibt es die Option --dry-run. Mit dieser Option zeigt die Ausgabe für rsync an, was rsync ohne die Option --dry-run tun würde. Damit könnte man also auch Ausdrücke testen ohne Schaden anrichten zu können.
Hier mal nur ein Beispiel von einem Ordner den ich grad rumliegen hatte:
Code: Alles auswählen
$ rsync -avv --include '*1321*.jpg' --exclude '*132???.jpg' --dry-run . ..
sending incremental file list
[sender] hiding file 20210417_132001.jpg because of pattern *132???.jpg
[sender] hiding file 20210417_132024.jpg because of pattern *132???.jpg
[sender] hiding file 20210417_132038.jpg because of pattern *132???.jpg
[sender] hiding file 20210417_132048.jpg because of pattern *132???.jpg
[sender] hiding file 20210417_132053.jpg because of pattern *132???.jpg
[sender] showing file 20210417_132104.jpg because of pattern *1321*.jpg
[sender] showing file 20210417_132109.jpg because of pattern *1321*.jpg
[sender] hiding file 20210417_132256.jpg because of pattern *132???.jpg
delta-transmission disabled for local transfer or --whole-file
./
20210417_131923.jpg
20210417_131927.jpg
20210417_131934.jpg
20210417_131942.jpg
20210417_131945.jpg
20210417_131948.jpg
20210417_131952.jpg
20210417_131956.jpg
20210417_132104.jpg
20210417_132109.jpg
Readme.md
total: matches=0 hash_hits=0 false_alarms=0 data=0
sent 272 bytes received 115 bytes 774.00 bytes/sec
total size is 38,123,948 speedup is 98,511.49 (DRY RUN)