我一直在使用rsync脚本中的–cvs-exclude选项.我使用一个SVN存储库,所以它保持SVN文件的生产.
今天我尝试rsync的更改,突然间rsync没有从一个名为“核心”的文件夹中挑选出来.调查后,我发现“核心”是CVS文件夹,因此被忽略.
所以我的问题是为什么rsync对我来说是一个工作,但是突然之间今天决定开始忽略“核心”文件夹.
我已经通过简单地忽略SVN文件而不是使用CVS排除来解决这个问题,但是我仍然感到困惑的是为什么rsync工作直到今天.
我的旧rsync代码:
rsync -vcaz --no-p --cvs-exclude --exclude downloader --exclude media --exclude var /var/www/project/ user@production.com:/var/www/project/httpdocs/ | grep -v '/$'
操作系统(运行Xubuntu):
Distributor ID: Ubuntu Description: Ubuntu 11.10 Release: 11.10 Codename: oneiric
rsync版本:
rsync version 3.0.8 protocol version 30 Copyright (C) 1996-2011 by Andrew Tridgell,Wayne Davison,and others. Web site: http://rsync.samba.org/ Capabilities: 64-bit files,64-bit inums,64-bit timestamps,64-bit long ints,socketpairs,hardlinks,symlinks,IPv6,batchfiles,inplace,append,ACLs,xattrs,iconv,symtimes
也许不是一个关键的问题,但是它仍然困扰着我.
解决方法
我也遇到同样的问题.如果使用-C选项,则Rsync将排除以下类型的文件:
static char default_cvsignore[] = /* These default ignored items come from the CVS manual. */ "RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS" " .make.state .nse_depinfo *~ #* .#*,* _$* *$" " *.old *.bak *.BAK *.orig *.rej .del-*" " *.a *.olb *.o *.obj *.so *.exe" " *.Z *.elc *.ln core" /* The rest we added to suit ourself. */ " .svn/ .git/ .hg/ .bzr/";
“核心”文件是终止程序的核心转储,所以通常你不想复制这些文件.问题是当你有一个名为“core”的目录.
解决方案是使用“–include”选项,或者创建一个包含以下规则的过滤文件:
核心
然后使用“–filter = filename”.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。