다음에서 디렉터리를 복사하고 싶습니다.
path1/dir1
도착하다
path2/dir2
처음 전화했을 때
cp -r path1/dir1 path2/dir2
문제 없습니다. dir2는 path2 아래에 생성됩니다.
ls path2/dir2
bu 두 번째로 dir1은 path2/dir2 아래에 생성되었습니다.
ls path2/dir2/dir1
just를 사용하여 올바른 동작을 얻을 수 있습니까 cp
? (= 호출되지 않음 rm -f path2/dir2
)
답변1
-T
cp (GNU ) 옵션을 사용하십시오 cp
:
cp -rT path2/dir2 path1/dir1
이를 위해 이것을 사용하는 경우 rsync
(변경되지 않은 파일을 복사하지 않기 때문에 원하는 것일 수 있음) /
디렉토리 자체가 아닌 내용이 구체적으로 복사되도록 소스 디렉토리에 a를 추가할 수 있습니다. 예를 들어:
rsync -r path1/dir1/ path2/dir2
답변2
이미 존재하는 대상에 디렉토리를 "복사"할 때 원하는 동작이 명확하지 않습니다. 당신은 원하십니까?
- 새 파일을 추가하기만 하시겠습니까?
- 새 파일을 추가하고 내용이 변경된 파일을 업데이트하시겠습니까?
- 파일을 추가 및 업데이트하고, 소스에서 제거된 대상의 파일을 삭제하시겠습니까?
기본적으로 간단한 복사 작업이라고 생각하는 작업은 실제로 훨씬 더 복잡합니다 cp
. 모든 경우에 이 명령을 사용하려고 합니다 rsync
.