在跟随符号链接时执行rsync


67

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

/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/

Answers:


98

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


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

那不是你想要的吗?我以为您希望在接收方拥有真实的文件,而不仅仅是符号链接。您是说要将符号链接复制为符号链接,而是自动重写以指向接收系统上的“正确”位置吗?如果是这样,那通常不是“跟随符号链接的rsync”的意思。
MadHatter

4
嗨-这些是目录。我将其与-K标志一起使用。
恩斯纳雷

4
我敢肯定,所以让我更傻..
约翰·亨特

3
为了澄清,-LK如果您要同时跟踪符号链接的文件和目录
Mahn 2016年

17

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

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


您可能还需要添加--copy-unsafe-links选项
Gregory Magarshak '16

2

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.