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)
总结
- 同步的源路径为目录时
- 源路径以
/
结尾时,同步源路径下边的所有文件至目标路径内 - 源路径非
/
结尾时,同步源路径自身至目标路径内(源目录会作为目标路径的子目录) - 与目标路径是否以
/
结尾无关
- 源路径以
- 同步的源路径为文件时
- 源路径以
/
结尾时报错,无法执行同步 - 目标路径以
/
结尾时,同步文件至目标路径下,新建或覆盖目标路径下的同名文件 - 目标路径非
/
结尾时,目标路径即为同步之后的文件路径(可理解为把源文件重命名为目标文件)
- 源路径以