它不需要用来完成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
指向目录树中更高目录的目录会发生什么?