如何仅同步某些目录中的某些文件

如何仅同步某些目录中的某些文件

我正在尝试同步根目录+其他一些目录*.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 的**运算符匹配斜杠以及其他字符。

相关内容