Es muss nicht von gemacht werden rsync, aber es wäre schön, kein Skript schreiben zu müssen, um dies zu tun, und es rsyncist sehr nah an dem, was ich will.
rsync -a(oder -l) kann Symlinks beibehalten und Symlinks -Ldereferenzieren und kopieren, als ob es sich um eine normale Datei / ein normales Verzeichnis handelt. Ist es jedoch möglich, den Symlink beizubehalten und auch die Dateien / Verzeichnisse zu kopieren, auf die die Links verweisen?
Hier ist ein Beispiel. Angenommen, wir haben diese Ordnerhierarchie:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
und wenn ich es tue rsync -aR dirA dest(oder etwas anderes), möchte ich genau diese in dest:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
Ist das möglich mit rsync? Vielen Dank.
Nehmen wir an, dass Symlinks mit einem absoluten Pfad oder einem Hinweis außerhalb des Quellverzeichnisses ignoriert werden können.
a -> b, b -> c/foo, c -> d/e: eine Anforderung an Kopie aauch kopieren soll b, c, c/foo, d, d/eund d/e/foo).
dirA/linkes sich um einen Symlink zu handelt../dirB/file, dies als KopierendirB/filenachdest/dirB/fileunddirA/linknach behandelt werden solltedest/dirA/link. Was ist, wenndirA/linkein Link zu ist../../another_file? Was passiert im Allgemeinen, wenndirA/linkauf ein Verzeichnis verwiesen wird, das sich weiter oben im Verzeichnisbaum befindet?