为什么 rsync 会嵌套目录?

为什么 rsync 会嵌套目录?

我有这种情况:dir1 /home/arek/,dir2 /mnt/home/arek/(使用sshfs安装)。

当我发出:时rsync -avz /mnt/home/arek /home/arek,我得到了/home/arek/arek全部内容。有些目录在中正常/home,有些则不行。没有链接(无论是硬链接还是符号链接)。

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

答案1

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

rsync -avz /mnt/home/arek/ /home/arek

查看手册页了解所有详细信息。

更新

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

rsync -avzP -e ssh username@remotesystem:/home/arek/ /home/arek

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

要求-P重新启动部分文件传输(对于网络链接非常有用可能死)显示进度(这在网络链接上很有帮助,因为它们通常比驱动器到驱动器的复制慢)。

rsync(1)此外,非常巧妙地进行哈希检查在两端ssh当以这种方式调用时——磁盘到 CPU 的带宽比磁盘到网络到不稳定的文件系统驱动程序的带宽要好得多ssh——因此您将在网络上传输更少的数据。

考虑一下:如果你附加一个单字节对于每个文件,rsync(1)over sshfs 将被迫将每个文件的内容从源传输到目标。overrsync(1)将在远程端点上ssh(1)启动并执行哈希计算rsync(1)两个都机器,并且可能只传输每个文件的最后 8192 个字节。

答案2

它会将目录复制/mnt/home/arek到 中/home/arek,而你想要的是它复制的内容 /mnt/home/arek。您可以通过在源目录名称后面添加一个斜杠来实现此行为:rsync -avz /mnt/home/arek/ /home/arek。是的,这有点奇怪。它记录在rsync手册页的“USAGE”标题下,但那里没有解释得很清楚。

相关内容