rsync verwendet einen Teil eines relativen Pfads

rsync verwendet einen Teil eines relativen Pfads

Angenommen, ich habe ein Verzeichnis auf einem lokalen Computer hinter einer Firewall:

local:/home/meee/workdir/

Und ein Verzeichnis auf einem Remotecomputer auf der anderen Seite der Firewall:

remote:/a1/a2/.../aN/one/two/
remote:/a1/a2/.../aN/one/dont-copy-me{1,2,3,...}/

...so dass N>= 0.

Auf meinem lokalen Computer befindet sich ein Skript, das verwendet . Ich möchte, dass dieses Skript nur vom Remotecomputer für eine variable, aber bekannte „N“ rsynckopiert, sodass ich am Ende Folgendes erhalte:one/two/

local:/home/meee/workdir/one/two/

Wenn ich verwende rsync remote:/a1/a2/.../aN/one/two/ ~/workdir/, erhalte ich Folgendes:

local:/home/meee/workdir/two/

Wenn ich verwende rsync --relative remote:/a1/a2/.../aN/one/two/ ~/workdir/, erhalte ich Folgendes:

local:/home/meee/workdir/a1/a2/.../aN/one/two/

Keines von beidem ist das, was ich will.

  1. Gibt es rsyncFlaggen, die das gewünschte Ergebnis erzielen können?
  2. Wenn nicht, fällt jemandem eine einfache Lösung ein?

Antwort1

Für -- relative müssen Sie einen Punkt in den Quellverzeichnispfad einfügen:

rsync -av --relative remote:/a1/a2/.../aN/./one/two ~/workdir/

Siehe Handbuch:

-R, --relative

[...]

Es ist auch möglich, die Menge an Pfadinformationen zu begrenzen, die als implizite Verzeichnisse für jeden von Ihnen angegebenen Pfad gesendet werden. Mit einem modernen rsync auf der sendenden Seite (ab 2.6.7) können Sie einen Punkt und einen Schrägstrich in den Quellpfad einfügen, wie folgt:

             rsync -avR /foo/./bar/baz.c remote:/tmp/

Antwort2

Wenn Sie Dateien von einer älteren Version als v2.6.7 abrufen , können Sie dies tun, indem Sie die Option rsyncvon nutzen , mit der Sie angeben können, wo der rsync-Befehl auf der Remote-Remote zu finden ist. Sie können sie jedoch auch verwenden, um zuerst das Verzeichnis zu wechseln. Einfach:rsync--rsync-path

rsync -aR --rsync-path='cd /a1/a2/.../aN/ && rsync' remote:one/two/ ~/workdir/

verwandte Informationen