如何将文件从一个代码项目复制到另一个

时间:2020-03-06 15:04:41  来源:igfitidea点击:

我有一个项目的多个分支签出,每个分支都在各自的目录下(相当标准)。

src / branch1 / some / code / directories
src / branch2 / some / code / directories

我经常发现自己想要将所选文件从一个分支复制到另一个分支。一个示例是复制cvsignore文件或者intellij模块文件。我要执行的伪命令是"将匹配PATTERN的branch1下的所有文件复制到branch2,保留复制文件的相对路径"。

这个问题看起来很接近我在寻找什么,但是我需要OS X / linux / unix解决方案。

解决方案

在branch1目录中使用这样的" cp -r --parents"命令

find . -name ".cvsignore" -exec cp -r --parents {} ../branch2/ \;

或者

在src /目录中时,运行此脚本。我们可以根据需要从命令行参数获取变量。

SOURCE="branch1/"
TARGET="branch2/"
PATTERN=".cvsignore"

find $SOURCE -name $PATTERN | while read f ;
do
        FILEPATH=$(dirname $f | cut -d'/' -f2-)
        FILENAME=$(basename $f)
        DESTPATH=$TARGET/$FILEPATH;
        if [ ! -d $DESTPATH ]
                then mkdir -p $DESTPATH
        fi
        cp $f $DESTPATH
done