2014-10-10 64 views
1

我正在开发我的备份pet project并找不到我非常需要的rsync功能。Rsync递归只有新目录

想象一下:

parent1/ 
     dir1/ 
      file1 

parent2/ 
     dir2/ 
      file2 

如果我动 “DIR1” 到 “parent2” 是这样的:

parent1/ 


parent2/ 
     dir1/ 
      file1 
     dir2/ 
      file2 

它留下没有其他选择,而不是递归同步parent2/,否则file1将被省略。我想要做的是强制rsync递归同步新创建dir1,但省略dir2

任何想法?

+0

这不需要rsync跟踪新添加的文件并默认排除它们吗?这超出了rsync的范围。但是,您可以将该跟踪作为程序的一部分来实施。 Arq是这样做的,我只是不知道默认行为是什么东西被移动... http://www.haystacksoftware.com/arq/ – mddubs 2014-10-10 18:37:06

+0

我刚在我的问题(固定)中发现了一个错误,我想从递归中排除不变的目录,并且仅递归新的目录。 – 2014-10-11 07:08:41

回答

0

这似乎不可能,因为rsync需要在每个文件夹中查看发生了什么变化。

最好的选择仍然是一个--update,为了传输的所有文件,并跳过它存在于目标,并有修改时间比源文件新的文件。


另一种选择:

对于文本文件,就像Git源控制系统的确会忽略dir2,因为它会检测其相关SHA1没有改变(不需要该文件夹中去)。