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

3
有没有办法让rsync递归同步多种文件类型,但不复制目录结构,只复制文件本身?
到目前为止,我已经得到了以下内容。
  rsync -zarvm --include="*/" --include=*.{xml,properties} --exclude="*" /foo/ /syncdDir/

这让我得到了这个结果。
/foo/
    file1.properties
    dir1/
    dir1/file1.xml
    file2.properties
    dir2/
    dir2/file2.xml

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

你可能可以使用“find”和“rsync”来试试看。 - Mad Physicist
1个回答

1

你可能无法直接使用 rsync 来压缩结构,但你可以使用 find 来帮助你完成:

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

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

谢谢,我通过添加括号并用反斜杠转义它们使其工作了。 - CloseTurkey
我在处理文件时遇到了文件被打开或正在使用的问题。我知道有一种方法可以解决,但不确定如何操作。如何改进脚本以忽略在处理时打开的文件? - CloseTurkey
@CloseTurkey 这是一个单独的问题。 - Mad Physicist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接