2008-10-03 4 views
0

프로젝트의 여러 가지 분기를 각자의 디렉토리 아래에 체크 아웃했습니다.하나의 코드 프로젝트에서 다른 프로젝트로 파일을 복사하는 방법

SRC/BRANCH1은/어떤/코드/디렉토리 SRC/브랜치/일부/코드/디렉토리

나는 종종 자신이 다른 하나 개의 지점에서 선택한 파일을 복사하고자 찾을 수 있습니다. 예를 들면 cvsignore 파일 또는 intellij 모듈 파일을 복사하는 것입니다. 내가하려는 일에 대한 의사 명령은 "branch1에 일치하는 branch1 아래의 모든 파일을 branch2로 복사하여 복사 된 파일의 상대 경로를 보존"합니다.

This question 내가 찾고있는 것에 가깝게 보이지만 OS X/linux/unix 솔루션이 필요합니다. BRANCH1 디렉토리에, 다음과 같은 명령을

답변

1

사용 "--parents -r CP"

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 
+0

감사합니다. 첫 번째 솔루션에서 --parents 플래그는 os X에서 지원되지 않는 것으로 보이며 어느 man 페이지에서도 찾을 수 없습니다. 두 번째 솔루션은 훌륭하게 작동했습니다. – jon

+0

- parents는 아마도 GNU 확장 프로그램입니다. – hayalci

관련 문제