我正在尝试同步根目录+其他一些目录*.jpg
中的所有文件。/var/www/data/models/days/
/var/www/data
我愿意:
rsync -az --delete --include='/models' --include='*.jpg' --exclude='*' $SRC::/var/www/data /var/www/data
但它不同步任何东西。我究竟做错了什么?
注意:我不想更改源或目标以包含 /models/days,因为我需要一些具有相同文件名匹配 ( *.jpg
) 的其他目录。
答案1
您已包含/models
在遍历中,但没有包含其子目录。如果排除某个目录,rsync 不会遍历该目录,因此无法包含其任何内容。
用于--include='*/'
包含所有子目录,并且-m
不复制最终为空的目录。有关更多信息,请参阅Rsync 过滤器:仅复制一种模式
答案2
您的--include
选项需要考虑前导子目录名称。尝试使用**.jpg
:特定于 rsync 的**
运算符匹配斜杠以及其他字符。