它不需要用来完成rsync,但是不用编写脚本来做到这一点就很好了,它与rsync我想要的非常接近。
rsync -a(或-l)可以保留符号链接,并且-L可以取消引用符号链接并将其复制,就好像它是正常的文件/目录一样。但是,是否可以保留符号链接,还可以复制链接指向的文件/目录?
这是一个例子。假设我们具有以下文件夹层次结构:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
当我这样做rsync -aR dirA dest(或其他方式)时,我希望这些内容出现在dest:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
这可能rsync吗?谢谢。
假设具有绝对路径或指向源目录外部的符号链接可以忽略。
接得好。在我的用例中,没有指向树外部的链接,并且链接中没有绝对路径。
—
魏贤
我想得越多,就越没有标准实用程序会这样做。在一般情况下,它可能需要创建大量给予单一来源的目的地,如果你有一个符号链接到一个符号或者更一般的符号连接,其目标包含一个符号链接(例如
—
吉尔(Gilles)'所以
a -> b,b -> c/foo,c -> d/e:要复制的请求a也应该复制b,c,c/foo,d,d/e和d/e/foo)。
@吉尔斯:是的,你是对的。跟踪链接可能会导致包含很多文件,只要它们仍位于源目录中即可。
—
魏贤
dirA/link是一个符号链接../dirB/file,那么这应该是作为复制处理dirB/file到dest/dirB/file和dirA/link到dest/dirA/link。如果dirA/link链接到该../../another_file怎么办?通常,如果dirA/link指向目录树中更高目录的目录会发生什么?