我正在尝试将所有文件和文件夹从一个目录复制到另一个目录,但排除某些文件。具体来说,我想排除Subversion文件和文件夹。但是,我想要一个通用而简洁的解决方案。
我想我会发现在不久的将来需要排除几种类型的文件。例如,我可能要排除.svn,*。bak和* .prj。
这是我为此准备的,但对我不起作用。第一部分,查找作品,但是xargs和cp我做错了什么。我尝试使用cp和不使用-R
。另外,我正在使用OS X,它的xargs版本似乎比linux系统的特征少。
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
旗帜,我很确定。删除它,您就可以了(尽管我想您可能想添加它-mindepth 1
来忽略不想复制的顶层目录文件夹)
find
命令正确使用-prune
排除.svn的项目,你再传递-R
到标志cp
告诉该命令是递归的。这样做时,您将失去find
命令中所具有的粒度。我将对此进行修补,但是我认为答案不应该-R
在cp
命令中使用。