Rsync 本地和服务器上文件夹路径对应的问题?

发布于 2022-08-28 11:01:50 字数 890 浏览 16 评论 0

为了把本地的 repo/ 目录对应上传到 VPS 的 repo/ 我写了这样的脚本,
以便运行 up a 时, repo/a/ 能在服务器同步出现 repo/a:

function up {
  rsync -avzl --delete --stats --progress \
  --exclude-from /Users/chen/repo/.rsyncignore \
  ~/repo/$1 \
  digital:/home/chen/repo/
}

为了单独同步名字是 repo/cirru/ 的子目录, 我又增加了一个脚本,
对应两边的路径增加了 cirru, 以便同样的目录结构被拷贝:

function upcirru {
  rsync -avzl --delete --stats --progress \
  --exclude-from /Users/chen/repo/.rsyncignore \
  ~/repo/cirru/$1 \
  digital:/home/chen/repo/cirru/
}

然而运行 upcirru a 时, 问题出现了, 本地使用的是 repo/cirru/a 路径,
而服务器上对应变成了 repo/cirru/ 而不是预期的 repo/cirru/a.

就是说, 在两个不同的目录输入时, 目标文件的确定是不同的...
我很不理解这里发生了什么... 不知道是否有同学遇到过类似问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呆萌少年 2022-09-04 11:01:50

rsync的一个坑是rsync a b/rsync a/ b/是不同的。

前者是把a同步到b/a,后者是把a同步到b/

然而运行 upcirru a 时, 问题出现了, 本地使用的是 repo/cirru/a 路径,
而服务器上对应变成了 repo/cirru/ 而不是预期的 repo/cirru/a

目测你运行的不是真的upcirru a,而是输入了a的前几个字母后按了tab补全,然后自动给你补成了upcirru a/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文