首先,我确实阅读了很多有关这个主题的内容(包括Rsync 过滤器:仅复制一种模式),但我还是不明白,或者我的安装有问题......
我的结构“from”是这样的:
Windows
Users
User1
Documents
doc1.txt
doc2.txt
AppData
Downloads
User2
Documents
doc3.txt
doc4.txt
AppData
Downloads
我想备份所有用户的所有文档文件夹和子文件夹,但不备份 AppData 和下载结构。
关于我想要的目的地:
Users
User1
Documents
doc1.txt
doc2.txt
User2
Documents
doc3.txt
doc4.txt
我确实尝试了很多模式,但没有一个效果很好。让我们从这个开始:
rsync -av --include="*/" --exclude="*/AppData" --exclude="*/Downloads" /source/Users /destination
我应该怎么做才能排除每个用户的 AppData 和 Downloads 文件夹及子文件夹?
谢谢
还有另一个线程讨论几乎相同的事情(如果我很好理解的话): rsync 与绝对路径并排除子路径
我根据我的情况调整了答案,但应用程序数据和下载仍然存在于目标路径上。
rsync -av --no-p --include="*/" --include="*/Documents/**" --exclude="** /source/Users /destination
答案1
在许多 shell 中*
不包含/
符号(而不是前面.
)(请参阅人 7 球和globstar
| )dotglob
中的选项shopt
,所以如果你想排除应用程序数据和下载你应该提供完整路径来源( --exclude="*/*/AppData" --exclude="*/*/Downloads"
) 或仅保留名称 ( --exclude="AppData" --exclude="Downloads"
) 如果目录位于哪一层并不重要。
rsync -av --exclude="AppData" --exclude="Downloads" /source/Users /destination