让 rsync 取消引用 cmdline 上显示的符号链接目录,如 find -H

让 rsync 取消引用 cmdline 上显示的符号链接目录,如 find -H

我希望 rsync 将符号链接复制到在 cmdline 上指定为 dirs 的目录,但将复制的树中的所有符号链接按原样保留find -H,但唯一的方法是讨厌的 hack

rsync -aR --rsync-path='cd /sender/parent/dir/of/tree; rsync' symlinkeddir/ target

问题在于,这成为我的 rsync 备份脚本中的一个例外,仅适用于这一组路径,因此我无法使用相同的命令(或更严格地说,只是 ONE rsync)来执行我想要的操作。find -H-类似的行为会做得很好。 :/

答案1

如果somelink是目录的符号链接somedir,则

rsync -a somelink/. target/

somedir将的内容复制到target.

如果您只有保留在源代码中的相对符号链接,那么您可以使用

rsync -a --copy-unsafe-links somelink target/

如果您想保留目标内部的符号链接路径,我认为仅使用 rsync 无法完成您想要做的事情。您可以使用 rsync 加上一些 shell 代码来完成此操作:循环源,并显式指定目标子目录。

mkdir -p target/somelink
rsync -a somelink/. target/somelink

相关内容