关于linux:如何使用Jenkins shell命令复制文件但排除某些目录

How to use Jenkins shell command to copy files but excluding some directories

本问题已经有最佳答案,请猛点这里访问。

在Jenkins的工作中,我有一个构建步骤,它执行如下shell命令:

1
2
rm -rf /var/www/www.example.com/*
find . \( -not -path '*/.svn/*' \) -exec cp -rv {} /var/www/www.example.com \;

但是,每当那些文件夹中的文件(如…/classes/.svn/props)仍然被复制时。

我查看了查找命令手册,命令的格式似乎是正确的。为什么它不起作用?另外,在结尾放分号的目的是什么?我从某个地方复制了这个——)

我花了几个小时在这上面,但仍然不能使它工作,所以很痛苦。也许使用rsync是更好的选择。


您将忽略find命令中的.svn目录,但之后您将进行目录的递归复制,因此如果目录包含.svn目录,您仍将复制它。(而且您的命令也会执行大量的副本)

除了SVN文件之外,还有很多复制目录的选项——在您的例子中,我将从删除-r开始。

如果上面的内容不起作用的话,谷歌"复制没有SVN目录的文件"会提供很多不同的选项。