Rsync 本地和服务器上文件夹路径对应的问题?
为了把本地的 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
rsync的一个坑是
rsync a b/
和rsync a/ b/
是不同的。前者是把
a
同步到b/a
,后者是把a
同步到b/
。目测你运行的不是真的
upcirru a
,而是输入了a
的前几个字母后按了tab补全,然后自动给你补成了upcirru a/
。