2012-10-11 4 views
1

디렉터리를 사용하는 스크립트를 작성하려고하는데 모든 파일을 내가 만든 새 디렉터리로 복사합니다. 따라서 스크립트에는 두 가지 인수가 있습니다. 첫 번째는 기존 디렉토리이고 두 번째는 생성 된 디렉토리입니다.디렉터리 만들기 및 복사

dir1=$1 
dir2=$2 

mkdir $2 
cp $1/. $2 

그러나 나의 새로운 디렉토리는 항상 비어 : 여기

는 내가 지금까지 가지고있는 것입니다. 구문 오류입니까?

답변

1
cp -r $1/. $2 

재귀를 추가해야합니까?

+0

아니요, 정확히 -r 플래그는 무엇입니까? – Unknown

+0

당신은 재귀 적으로 복사 할 것을 말하고 있습니다. dir1의 내용을 가져 와서 dir2에 복사하십시오. – ProfessionalAmateur

+0

아, 알겠습니다. 그러면 사용하겠습니다. 도움을 주셔서 감사합니다. – Unknown

0

cp $1/. $2 나는, 당신이 실제로 복사 그것을 말하는 것 대신 cp $1/* $2

또 다른 방법은 당신이 .을 복사하도록 지시하는 경우 재귀 사본

cp -r $1/* $2 # copy the whole directory into the second one recursively (e.i. including subdirectories) 
cp -ar $1/* $2 # this will keep the sym links intact (not trying to replace them with the file they point) 
1

을 사용하는 것입니다 점 와일드 카드를 사용할 필요가 있다고 생각 디렉토리 (.은 디렉토리에 연결되므로 동일한 디렉토리의 cd ././././././././ 루프).

cp $1/* $2 

은 "$ 1" "$ 2"에서 모든 파일을 복사하는 것이 아니라 하위 디렉토리도

cp $1/. -r $2 

재귀 적으로 모든 파일과 하위 디렉토리를 복사, 그리고 치료하지 :

당신이 중 하나를 수행 할 수 있습니다 일반 파일과 같은 특수 파일 (예 : 파이프를 찾으면 파이프에서 읽고 일반 파일에 씁니다).
cp $1/. -R $2 

재귀 적으로 모든 파일과 하위 디렉토리를 복사하고, 또한 모든 것을 복사 할 특수 파일

cp $1/. -a $2 

을 보존하고, 또한 링크, 그룹 권한 및 특수 파일을 보존합니다.

호프가 도움이 됨 =)

+0

좋은 답변 – VAR121

관련 문제