rsync :递归同步多种文件类型,同时忽略目录结构

rsync : Recursively sync multiple file types while ignoring directory structure

有没有办法使 rsync 递归同步多种文件类型但不复制目录结构,只复制文件?

到目前为止我已经得到了这个

  rsync -zarvm --include="*/" --include=*.{xml,properties} --exclude="*" /foo/ /syncdDir/

这给了我这个

/foo/
    file1.properties
    dir1/
    dir1/file1.xml
    file2.properties
    dir2/
    dir2/file2.xml

我要查找的只是复制到 /syncdDir/ 中的 file{1,2}.xmlfile{1,2}.properties 文件,而不是 dir1dir2 目录。

您可能无法直接使用 rsync 来展平结构,但您可以使用 find 来帮助您做到这一点:

find -type f \( -name '*.xml' -o -name '*.properties' \)
    -exec rsync -zarvm {} /syncDir/ \;

当您使用 find 进行搜索时,很容易将输出文件夹硬编码为所有输入都相同。