我正在尝试创建一个tar文件来部署一些代码,但是我不想部署所有的“.svn”文件。
我该如何过滤这些文件?它们分布在多个目录中...
tar --exclude=.svn -z -c -v -f mytarball.tar.gz mydir/
如果您的tar版本为1.28或更高版本,请尝试使用
tar --exclude-vcs
它可用于备份包含以下内容的目录:
从手册上看:
‘--exclude-vcs’ 排除以下版本控制系统使用的文件和目录:‘CVS’、‘RCS’、‘SCCS’、‘SVN’、‘Arch’、‘Bazaar’、‘Mercurial’和‘Darcs’。
对于某些tar版本,--exclude-vcs
必须是第一个参数。
--exclude-vcs
放在首位是有效的。 - Stephan Samuelsvn export
命令创建本地沙盒的干净副本。
http://svnbook.red-bean.com/en/1.0/re10.html
svn export [-r REV] URL [PATH]
svn export PATH1 PATH2
您可以使用svn导出功能获取不带.svn文件夹的干净文件版本。
请在与您的工作副本不同的位置执行此操作。
方法一
在这个帖子中,扩展了引用SVN Book的解决方案(这是以SVN为中心的),我给出了以下示例:
c:> svn export -r rrev https:/A_SERVER/svn/A_REPO/A_PROJECT/ c:\tmp\arepo--aproject--rrev\
c:\tmp\arepo--aproject--rrev> tar zcvf arepo--aproject--rrev.tar.gz *
方法二
还有另一个长而且信息丰富的线程,可以在以下位置找到:
这个不同的讨论对我来说更多地是集中于find和tar。 (两个有趣的话题)
对于我来说,最好使用上面的第一种解决方案。
我大多数时候都能让另一个“从过滤的STDIN方式查找”的方法工作,但考虑到使用所有DOS、Linux、find变体、xargs等的复杂性和不确定性,它并不总是稳定的。