rsync 模式包含特定模式的所有文件并从所有子目录树中排除其余文件

rsync 模式包含特定模式的所有文件并从所有子目录树中排除其余文件

我的意思是 rsync 子目录树中的一些文件dir1

我在用

[dir1]$ rsync --itemize-changes --recursive --update --times --include-from="rsync_include.dat" --exclude="*" --dry-run ./ remote:~/dir1/

规则如下,按此顺序。

  1. 包含1 级的子目录dir11和。dir12
  2. 排除 1 级的其余部分。
  3. dir11和内dir12,包括子树中的所有*.cc文件。*.txt
  4. dir11和内dir12,排除所有其他文件。
  5. dir11和内dir12,包括一些特定的子树(可能在不同级别)及其所有内容。

我并没有在我的 中使用单、双、三星号、加号/减号、尾随反斜杠和规则顺序的正确组合来一针见血rsync_include.dat

正确的内容是什么?

在我尝试的所有方法中,我将发布我的 的当前状态rsync_include.dat。除其他外,它与文件 不匹配classes/src/TEST/classes_test.cc,该文件的日期晚于./remote:~/dir1/因此我希望它被rsync编辑。在这种情况下,我正在寻找一种可以匹配该文件的模式,而无需我输入,因为在不同的深度和分支上+ classes/src/TEST/*.cc可能还有其他模式。*.cc

+ classes/
+ sanitizers/
- ***/.cproject
+ **/*.cc
+ ***/*.cc
+ **/*.cpp
+ **/*.dat

- */
- **/

相关内容