仅 rsync 特殊子目录中的文件夹和文件

rsync only folders and files in special sub directory

我有以下结构

我只想复制位于“_bearbeitet”中的文件夹、子文件夹和文件。

我正在尝试使用以下选项

--archive --hard-links --ignore-errors --force --exclude=* --include=/_bearbeitet

您的规则顺序错误,您的 glob 过于笼统。

试试这个:

--include=/_bearbeitet --exclude='/*'

所以一共:

rsync -aH --ignore-errors --force --include=/_bearbeitet --exclude='/*' $src $dest

规则是,对于每个文件,rsync 将使用匹配的 firstinclude/exclude 规则,并且将包括任何不匹配规则的内容。

因此,首先列出您要包含的内容:/_barbeitet 仅匹配顶层的命名目录。

然后在后面列出您要排除的内容:/* 仅匹配顶级的所有文件和目录。请注意 * 本身会 排除所有 文件和目录 任何地方 ,包括显式包含目录中的文件和目录。

你还应该注意在模式中将引号放在 * 周围,否则 shell 会在调用 rsync 之前扩展它们,这不是你想要的。