【问题标题】:rsync : Recursively sync multiple file types while ignoring directory structurersync :递归同步多种文件类型,同时忽略目录结构
【发布时间】:2018-08-21 13:16:59
【问题描述】:

有没有办法让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 目录。

【问题讨论】:

  • 你可以用findrsync 来实现它

标签: bash rsync


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,我通过添加括号并用反斜杠转义来完成这项工作
  • 我遇到了文件在处理时打开或正在使用的问题。我知道有办法解决它,但不知道该怎么做。如何增强脚本以在处理时忽略打开的文件?
  • @CloseTurkey 这是一个单独的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2017-05-20
  • 1970-01-01
相关资源
最近更新 更多