我有一个目录,该目录包含指向我系统上不同介质上其他目录的符号链接:

/opt/lun1/2011
/opt/lun1/2010
/opt/lun2/2009
/opt/lun2/2008
/opt/lun3/2007


,但符号链接显示为:

/files/2011
/files/2010
/files/2009
/files/2008
/files/2007


如何执行跟随符号链接的rsync

例如:

rsync -XXX /files/ user@server:/files/

#1 楼

rsync的-L标志将同步链接到的文件或目录的内容,而不是符号链接。

评论


当我这样做时,所有接收者的符号链接都将被删除,而我的发送者将开始重新发送文件。

– ensnare
2011年3月10日下午16:40

实际上,它会删除符号链接,并将其替换为文件。我想按照符号链接进行浏览,就好像它们是常规目录一样。

– ensnare
11 Mar 10 '11 at 17:53

嗨-这些是目录。我将其与-K标志一起使用。

– ensnare
2011年3月10日21:20

我确定SO会让我变得更加愚蠢。

–约翰·亨特
2014年11月7日11:53

为了澄清,如果您要同时跟踪符号链接的文件和目录,请使用-LK

–马恩
16年7月14日在21:14

#2 楼

刚遇到这个问题。并且如果您希望rsync将符号链接的目录视为目录,则需要K选项

rsync -K /files/ user@server:/files/

评论


您可能还想添加--copy-unsafe-links选项

–格雷戈里·玛格沙克(Gregory Magarshak)
16年8月2日在16:25

#3 楼

如果两侧都有符号链接,则需要-L-K。您已经完成了第一个rsync,并想使用rsync更新备份。

    -L, --copy-links            transform symlink into referent file/dir
    -K, --keep-dirlinks         treat symlinked dir on receiver as dir


在这种情况下,如果仅使用-L,则接收方的符号链接将被清除,将创建新的真实目录。

评论


这应该是选定的答案。

–ychaouche
20 Nov 16'9:45