我想了解两个目录(而不是文件)之间的区别,比如说目录1在本地系统上目录2它位于远程服务器上。
从我在互联网上找到的信息来看,“最佳”选项是使用rsync
,如下所示:
rsync -rvc --delete dir1/ user@ip:/home/user/dir2
检查完差异(如果有的话)后,我需要rsync
再次从本地切换到远程,以便两个目录相同。现在为了做到这一点,我需要检查此命令的退出值并相应地继续(我在 shell 脚本中执行了所有操作)。我最初使用命令执行此操作,diff
该命令允许我检查退出值(0 表示没有差异,1 表示目录之间存在差异)。但是rsync
如果命令运行成功,则退出代码只会返回,这不是我需要的。
这是我需要做的:
- 检查两个目录是否不同(获取返回值 0 或 1)
- 如果没有不同则什么也不会发生
- 如果不同,则使用
rsync
同步的目录
附言:我在本地执行了此操作(从一个目录到另一个目录),并且可以完美运行diff
,但不能与远程系统配合使用。
任何建议都值得赞赏。谢谢。