【问题标题】:How to copy files from one code project to another如何将文件从一个代码项目复制到另一个
【发布时间】:2010-09-15 02:15:19
【问题描述】:

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

src/branch1/some/code/directories src/branch2/some/code/目录

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

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

【问题讨论】:

    标签: macos unix


    【解决方案1】:

    在 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
    

    【讨论】:

    • 谢谢。 os X 似乎不支持第一个解决方案中的 --parents 标志,我也无法在任何手册页中找到它。第二种解决方案效果很好。
    • --parents 可能是一个 GNU 扩展
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多