Rsync 同步时需要指定源路径与目标路径,那么路径末尾的 / 会影响同步的结果吗?做了以下测试
同步目录
以源路径 /Downloads/User 目录,远端目录 /data  为例
- rsync Dowloads/User root@ip:/data- /data存在,- /data/User与源目录一致
- /data不存在,- /data/User与源目录一致
 
- rsync Downloads/User root@ip:/data/- /data存在,- /data/User与源目录一致
- /data不存在,- /data/User与源目录一致
 
- rsync Downloads/User/ root@ip:/data- /data存在,- /data与源目录一致
- /data不存在,- /data与源目录一致
 
- rsync Dowloads/User/ root@ip:/data/- /data存在,- /data与源目录一致
- /data不存在,- /data与源目录一致
 
同步文件
以源路径 /Downloads/User/a.txt文件,远端路径 /data  为例
- rsync Dowloads/User/a.txt root@ip:/data- /data存在,- /data覆盖内容与a.txt一致
- /data不存在,- /data创建文件,内容与a.txt一致
 
- rsync Downloads/User/a.txt root@ip:/data/- /data存在,- /data/a.txt与a.txt一致
- /data不存在,- /data/a.txt与a.txt一致
 
- rsync Downloads/a.txt/ root@ip:/data- /data存在,报错:”Downloads/User/a.txt/.” failed: Not a directory (20)
- /data不存在,报错:”Downloads/User/a.txt/.” failed: Not a directory (20)
 
- rsync Dowloads/User/a.txt/ root@ip:/data/- /data存在,报错:”Downloads/User/a.txt/.” failed: Not a directory (20)
- /data不存在,报错:”Downloads/User/a.txt/.” failed: Not a directory (20)
 
总结
- 同步的源路径为目录时- 源路径以/结尾时,同步源路径下边的所有文件至目标路径内
- 源路径非/结尾时,同步源路径自身至目标路径内(源目录会作为目标路径的子目录)
- 与目标路径是否以/结尾无关
 
- 源路径以
- 同步的源路径为文件时- 源路径以/结尾时报错,无法执行同步
- 目标路径以/结尾时,同步文件至目标路径下,新建或覆盖目标路径下的同名文件
- 目标路径非/结尾时,目标路径即为同步之后的文件路径(可理解为把源文件重命名为目标文件)
 
- 源路径以
