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

时间:2008-10-03 14:32:46

标签: macos unix

我检查了一个项目的多个分支,每个分支都在他们自己的目录下(非常标准)。

的src / BRANCH1 /一些/代码/目录 SRC / BRANCH2 /一些/代码/目录

我经常发现自己想要将所选文件从一个分支复制到另一个分支。一个例子是复制cvsignore文件或intellij模块文件。我正在尝试做的伪命令是“将branch1匹配PATTERN下的所有文件复制到branch2,保留复制文件的相对路径”。

This question看起来很接近我正在寻找的东西,但我需要一个OS X / linux / unix解决方案。

1 个答案:

答案 0 :(得分:1)

在branch1目录

中使用“cp -r --parents”命令
find . -name ".cvsignore" -exec cp -r --parents {} ../branch2/ \;

OR

在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