rsync递归并排除特定目录的内容,而不是目录

时间:2013-07-08 08:52:20

标签: linux command-line rsync

我有一个像这样的目录树:

dir1/
   file11
   file12
   file13
   ...
   file1548216479524594
dir2/
   file21
   file22
dir3/
   dir31/
      file311
      file312
   dir32/
      file321

我想rsync整个目录树,但没有目录dir1的内容。

如果我使用基本的rsync命令:

rsync --progress -v -ar --delete --exclude="dir1/*" src/ dst/<br>

有效。但是如果我在执行前使用-n进行干运行,它会持续很长时间,因为dir1包含很多文件(我不知道为什么在干运行期间它会列出所有文件,甚至是那些被排除在外的文件。)

如果我使用--exclude="dir1/",那么干跑很快但我没有目录树。

如何使用我的整个目录树(不包括dir1的所有内容)来快速执行rsync干运行(避免递归dir1文件非常多。)

1 个答案:

答案 0 :(得分:0)

在最新版本的rsync中,您可以使用-F选项并将文件“.rsync-filter”放在目录src中,其中包含:

- dir1/***

这似乎对我有用。我假设您上面的层次结构都在“src /".