我正在使用rsync从共享复制一些文件到另一个。
recursion地,我需要:
.svn/目录 如果我使用这个:
rsync -zavC --delete --include='*.php' --include='*.js' --exclude="*" \ /origiin /destination
然后rsync不recursion,因为exclude="*"排除所有文件,但也包括文件夹
如果我添加--include="*/"那么.svn/目录被删除(它也包含在内)
我怎样才能解决这个思维爆炸的困境?
uname -a:
Linux tux 3.9.2-1-ARCH#1 SMP PREEMPT Sat 5月11日20:31:08 CEST 2013 x86_64 GNU / Linux
rsync版本:
rsync 3.0.9-6
提前致谢
好吧,经过几次尝试,我整理了一下:
rsync -vaiz --delete --exclude=.svn/ --include='*.php' --include='*.js' \ --include='*/' --exclude='*' --prune-empty-dirs \ --filter "protect .svn/" /origin /destination
另一种方法
如果您不介意同步空的dirs,只需:
rsync -vaiz --delete --exclude=.svn/ --include='*.php' --include='*.js' \ --include='*/' --exclude='*' /origin /destination
关键是--exclude=.svn/之前的 – 包括的