为什么 rsync 嵌套目录?

Dar*_*rek 6 rsync

我有这个场景: dir1 /home/arek/, dir2 /mnt/home/arek/(用 sshfs 安装)。

当我发出: 时rsync -avz /mnt/home/arek /home/arek,我得到/home/arek/arek了全部内容。有些目录在 中是可以的/home,有些则不是。没有链接(既不是硬链接也不是符号链接)。

有谁知道发生了什么以及如何保护自己?

sar*_*old 8

rsync(1)尾部斜杠很挑剔。尝试这个:

rsync -avz /mnt/home/arek/ /home/arek
Run Code Online (Sandbox Code Playgroud)

有关所有详细信息,请参阅主页。

更新

如果其中一个路径是通过 sshfs 挂载的,我建议使用rsync(1)不同的方法:

rsync -avzP -e ssh username@remotesystem:/home/arek/ /home/arek
Run Code Online (Sandbox Code Playgroud)

(此时-e ssh可能是多余的;rsync(1)用于默认为rsh!)

-P请求重新启动,部分文件传输(在该网络链接非常有用可能死亡),并显示进度(这是通过网络链接有帮助的,因为他们往往慢于驱动器到驱动器的副本)。

此外,rsync(1)十分这样做散列检查聪明的两个端点时,调用此方法-磁盘CPU带宽比磁盘好得多ssh到网络ssh到靠不住的文件系统驱动程序的带宽-所以你会通过网络传输将少得多的数据。

考虑:如果您向每个文件附加一个字节,则rsync(1)sshfs 将被迫将每个文件的内容从源传输到目标。rsync(1)overssh(1)将改为rsync(1)在远程端点上启动并根据需要在两台机器上进行散列计算,并且可能只传输每个文件的最后 8192 个字节。