rsync für Verzeichnisse mit Großbuchstaben A-D

Mountainking02

Cadet 4th Year
Registriert
Nov. 2012
Beiträge
111
Hi,

ich will per rsync alle DAteien/Verzeichnisse eines Hauptverzeichnis sichern. Das klappt auch schon fast:

rsync -avh --mkpath --progress --dry-run --delete --include='/0[A-D]/' --include='/[A-D]/' --include="." --exclude '*' "/mnt/MYNAS/Test/" "/home/user/Test/"
Hier Beispielhaft alle Verzeichnisse die mit einem Großbuchstaben A-D anfangen. Blöderweise tauchen aber auch Verzeichnisse im Output auf die nicht in der Range A-D liegen. Ich vermute weil diese Verzeichnisse aus mehreren Wörtern bestehen sodass auch mitten drin im Verzeichnisnamen ein A vorkommen kann was rsync dann veranlasst diese ebenfalls zu sichern.

Wie sagt man rsync nun, dass es nur Verzeichnisse berücksichtigen soll, deren erter Buchstabe in die Range A-D passt?
 
@JumpingCat
Nur als Hinweis: Das * sorgt dafür, dass er nur jene Wörter matched, denen die Großbuchstaben A bis D null bis n-Mal vorangehen.
Besser ist es, wenn man das * hier weglässt, sodass genau einer der Großbuchstaben vorkommen muss.
 
  • Gefällt mir
Reaktionen: rollmoped, Piktogramm, Schinken42 und eine weitere Person
Oben schaut es so aus, als wenn der TE mehrere verschiedene Regex nutzt.
--include='/0[A-D]/' --include='/[A-D]/' --include="."
Was da raus kommt, kann ich nicht lesen.
Aber eine Regex für "alle Namen, die mit Großbuchstaben A-D beginnen und dann beliebig weitergehen", wäre
^[A-D].*
 
  • Gefällt mir
Reaktionen: acidarchangel und Alter_Falter
Funktioniert leider alles nicht. rsync kann übrigens kein regex auch wenn es so ähnlich aussieht. Achso ich vergaß zu erwähnen das inlude ist doppelt weil ich auch Verzeichnisse zusätzlich mit einer 0 vorangestellt habe damit diese zuerst angezeigt werden im Explorer.


Ok, mit dem folgenden Kommando werden die Verzeichnisse korrekt aufgelistet. Nach dem [A-D] müsst ihr euch noch zwei Sternchen vorstellen. Aber diese Schrott Forums Software macht da einen Text in bold draus.
rsync -avh --mkpath --progress --dry-run --delete --include='/0[A-D]/' --include='/[A-D]/' --exclude='*' "/mnt/MYNAS/Test/" "/home/user/Test/"
Die Frage ist wie ich nun auch noch die Dateien mit includiert bekomme. Mein Gedanke war das --include="." aber das hatte dazu geführt, dass auch Verzeichnisse mit einem Punkt includiert werden. Auch hier müsst ihr euch zwei Sternchen bei dem include vor und nach dem Punkt vorstellen.
 
Zuletzt bearbeitet:
Mountainking02 schrieb:
Aber diese Schrott Forums Software macht da einen Text in bold draus.
Die muss man nur richtig verwenden, dann geht das auch. Sogar mit Syntax-Highlighting.
Bash:
rsync -avh --mkpath --progress --dry-run --delete --include='/0[A-D]**/' --include='/[A-D]**/' --exclude='*' "/mnt/MYNAS/Test/"    "/home/user/Test/"
 
Zurück
Oben