我以前用过rsync
一点,但我对此有点困惑。我刚刚开始探索 WSL(安装的 Linux 是 Ubuntu 20.04),这是我有兴趣设置的主要内容之一。
这是我的命令(全部一行):
rsync --progress --modify-window=1 --update --recursive --times
--link-dest=/mnt/f/Backups/rsync/My\ Documents/snapshot2021-02-21T154600
/mnt/d/My\ Documents/ /mnt/f/Backups/rsync/My\ Documents/snapshot2021-02-21T154600
(我后来尝试不加尾部斜杠/mnt/d/My\ Documents/
:相同的结果)。
所以我正在尝试rsync
我的目录 D:\My Documents。简单的。 /mnt/f 是 NTFS 格式的外部硬盘驱动器。
我使用这些选项是因为在过去的几天里我开始探索 WSL 并发现一些使用的开关/选项建议rsync
似乎会导致问题。我之前使用大约 20 个文件进行了一些简单的测试rsync
,没有出现任何问题:快照和硬链接的使用通过检查df
修改其中一个文件后的第二个快照之前和之后的“可用”磁盘空间来验证。
更重要的是,在查看了rsync --help
.
令人困惑的结果:
相关“我的文档”文件夹的容量约为 5 GB。于是我就放下rsync
手头的事,预计大约 10 分钟内就能完成。
一个小时后我回来了,它仍然在工作。当我检查硬盘时,我发现在 F:\Backups\rsync\My Documents\snapshot2021-02-21T154600\ 下有 D:\My Documents... 下的所有目录,但也有两个不应该存在的目录:另一个“我的文档”和另一个“snapshot2021-02-21T154600”。在后者下,我再次找到了 D:\My Documents 下的所有目录...加上,是的,还有另一个“我的文档”和另一个“snapshot2021-02-21T154600”! ……再往下看……是的,它无限地向下递归。
/mnt/f/Backups/rsync/My\ Documents/snapshot2021-02-21T154600 的总容量不是 5 GB,而是 70 GB!我敢肯定,如果我没有打断它,它会占满整个硬盘。
当然,我想到的一个想法是,一切可能并不像看上去的那样:看似“递归目录”的东西可能是硬链接,只是让它看起来那样。
我还知道--link-dest
第一次运行时进行设置是没有意义的rsync
(即,只有后续快照才能使用该位置创建硬链接)。但我之前就这样做过,并进行过测试,并且从未造成任何问题。我不明白为什么它会产生任何问题。
无论如何,有些事情出了严重的问题,我不明白为什么。谁能提出问题(和解决方案)?
编辑
它出现通过在每条路径的末尾添加斜杠,就不会出现问题。即它变成
rsync --progress --modify-window=1 --update --recursive --times
--link-dest=/mnt/f/Backups/rsync/My\ Documents/snapshot2021-02-21T154600/
/mnt/d/My\ Documents/ /mnt/f/Backups/rsync/My\ Documents/snapshot2021-02-21T154600/
...这是否符合任何书面规则或获得的知识rsync
?我应该删除这个问题还是把它留给遇到类似问题的人?
从表面上看,如果这确实是问题的解决方案,我会认为rsync
功能稍有偏差:肯定会犯没有尾随斜杠的错误(如果是这样的话)不应该导致我的现象描述。当然,由于特定的背景(WSL),这可能是一个怪癖:超出了我的工资等级。