这是我正在使用的:
rsync -rav --include '*/' --exclude '*' --include '*.R' user@remote:/folder/. .
我正在尝试复制远程文件夹及其所有子目录中的所有 .R 文件。结果是所有目录都被复制了,但是是空的。
我这里哪里出错了?
提前致谢!
注:我参考的是这篇文章:rsync 使用 include 选项仅复制某些类型的文件。
答案1
您需要进行两项更改,并应考虑一项建议
- 包含和排除指令是从左到右处理的,因此您需要
.R
在排除所有内容之前包含文件(其他) - 使用
--prune-empty-dirs
以便仅在目标上创建相关目录 - 你不需要,
-r
因为它暗示-a
所以
rsync -av --prune-empty-dirs --include '*/' --include '*.R' --exclude '*' user@remote:/folder/ .