rsync 可以通过链接复制目录吗

rsync 可以通过链接复制目录吗

我有以下场景,我需要复制目录,有时可以是链接,有时可以是同名目录。例如,假设这是初始设置:

来源:/workspace/test/source/dir1 -> /tmp/test1

目的地:/workspace/test/dest/dir1 -> /tmp/test1

现在,假设我删除源中的链接并创建一个同名的文件夹,所以现在它看起来像这样:

来源:/workspace/test/source/dir1

目的地:/workspace/test/dest/dir1 -> /tmp/test1

我现在想做的是使用 rsync 复制实际文件夹并“覆盖”链接,因此它看起来像:

来源:/workspace/test/source/dir1

目的地:/workspace/test/dest/dir1

有什么办法可以通过rsync来做到这一点吗?我知道如果我使用上面一级的 rsync,即 /workspace/test/source,它将起作用。不幸的是,我必须使用最低级别的 rsync。

感谢您的回复。

答案1

这是 的默认行为rsync

例子

## Preamble
$ cd /tmp
$ mkdir src dst stuff
$ touch stuff/{a,b,c}
$ ( cd src && ln -s /tmp/stuff dir1 )
$ ( cd dst && ln -s /tmp/stuff dir1 )

## Symlinks are retained
$ cd /tmp
$ rsync -avv src/ dst/

## Change scenario
$ ls -l src
$ rm src/dir1 && cp -a /tmp/stuff src/dir1

## Symlinks are replaced according to the source
$ cd /tmp
$ rsync -avv src/ dst/
$ ls -l dst

相关内容