网站首页 > 开源技术 正文
为什么要区别带不带【/】?假如在同步A目录到B目录后,要查看A目录中有哪些新增文件的时候,你会发现会因为少一个【/】,就可能会永远得不到正确结果。
一、首先还是来说一下rsync的语法:
rsync [OPTION] SRC DEST 说明:SRC = 源路径 DEST=目表路径
更详细的说明可以看之前的文章《2张图1个表说明rsync的三种模式11种命令格式》
那么,如果要同步A目录到B目录(所有示例命令在windows主机上测试),就会有以下4种写法:
rsync -av /cygdrive/d/A /cygdrive/d/B 即SRC、DEST路径末都不带/
rsync -av /cygdrive/d/A /cygdrive/d/B/ 即SRC路径末不带/,DEST路径末带/
rsync -av /cygdrive/d/A/ /cygdrive/d/B 即SRC路径末带/,DEST路径末不带/
rsync -av /cygdrive/d/A/ /cygdrive/d/B/ 即SRC、DEST路径都带/
换句话说就是,源和目标路径末都带【/】、都不带【/】、一个带【/】一个不带【/】有什么不同的地方?
二、带不带【/】同步结果的区别:
好吧上边说了很多,看起来是不是很绕?直接看下边图示的总结表:
这一点与lftp路径后边的【/】刚好是相反的,见之前文章《Linux使用lftp替换ftp命令备份网站到FTP服务器》。
三、具体对比一下几条命令的区别:
rsync -av /cygdrive/d/A /cygdrive/d/B
rsync -av /cygdrive/d/A /cygdrive/d/B/
上边两条命令效果相同,执行后目录结构对比如下图:
rsync -av /cygdrive/d/A/ /cygdrive/d/B
rsync -av /cygdrive/d/A/ /cygdrive/d/B/
上边两条命令效果相同,执行后目录结构对比如下图:
说了半天,说明这些有什么作用呢?正如之前《rsync如何查看源目录有哪些新增文件?》一文描述的那样:假如在同步A目录到B目录后,要查看A目录中有哪些新增文件的时候就会有非常大的差别。
当使用以下两条命令同步后:源路径不带【/】,B目录中将会多一层A目录;
rsync -av /cygdrive/d/A /cygdrive/d/B
rsync -av /cygdrive/d/A /cygdrive/d/B/
要查看A目录中有哪些新增的文件,需要使用如下命令:
rsync -avn --delete /cygdrive/d/B/A/ /cygdrive/d/A/
或者:
rsync -avn --delete /cygdrive/d/B/A/ /cygdrive/d/A
当使用以下两条命令同步后:源路径带【/】,B目录结构与A目录完全一致;
rsync -av /cygdrive/d/A/ /cygdrive/d/B
rsync -av /cygdrive/d/A/ /cygdrive/d/B/
要查看A目录中有哪些新增的文件,需要使用如下命令:
rsync -avn --delete /cygdrive/d/B/ /cygdrive/d/A/
或者:
rsync -avn --delete /cygdrive/d/B/ /cygdrive/d/A
也就是说当要查看A目录中有哪些新增的文件的时候一定要注意在将B目录当做源路径的时候后边是必须要有【/】的,否则肯定永远是失败的。
正确结果应该是如下图:
不正确结果如下图:
总结:总而言之一句话就是【/】在目标路径中有没有都无所谓,但是在源路径中有和没有是有很大区别的。那么为了避免出现各种比较绕的情况下,建议使用源路径和目标路径都带上【/】,如下所示命令
rsync -av /cygdrive/d/A/ /cygdrive/d/B/
可以想象一下在脚本中使用变量表示路径的时候带【/】和不带【/】所带来的影响?
猜你喜欢
- 2024-10-17 DockerFile文件详解(dockerfile sh)
- 2024-10-17 复制!粘贴!搞定!Lierda Theland OS来了!
- 2024-10-17 Linux学习日志20090310(linux learn)
- 2024-10-17 RedHat Linux 7安装CentOS 7 yum源的安装步骤
- 2024-10-17 成为合格的Linux运维工程师必备技能:
- 2024-10-17 一套五星级酒店智能化系统设计说明书
- 2024-10-17 ftp终端中下载orerilly子目录下所有到本地目录中
- 2024-10-17 安服仔偷懒必备技能之自动化主机检查脚本
- 2024-10-17 Linux之RedHat7如何更换yum源(redhat更换centos yum源)
- 2024-10-17 Windows下使用GIT管理推送FTP代码
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)