Windows 방식에 익숙했지만 OS X에는 병합 기능이 없다는 사실을 알게 되었습니다. 이동은 폴더를 바꾸는 것을 의미합니다. 이것이 의미가 있지만 병합이 그리워요!
나는 두 개의 Wordpress 디렉토리를 가지고 있습니다. 1개에는 기본 소스가 포함되어 있고 2개에는 플러그인 사용자 정의 테마 등이 포함된 작업 버전이 포함되어 있습니다.
이 둘의 차이점을 보고 싶어서 SVN에 올려보겠습니다. 폴더 1은 이미 작동 중입니다. 이제 이론적으로는 모든 것을 2의 콘텐츠로 바꾸고 숨겨진 SVN 파일은 그대로 두어 2의 콘텐츠를 1과 병합해야 합니다.
불행하게도 OS X는 이동할 때 폴더를 대체하여 SVN 클라이언트가 미쳐가고 더 이상 폴더 구조를 이해하지 못합니다.
그래서 내 선택은 mv
과 이라고 생각합니다 ditto
. 하지만 제 상황에서는 어떤 것을 어떻게 사용하시겠습니까?
sudo mv wordpress /Documents/svn/wwwholiday/trunk/wordpress
mv
찾은 모든 항목을 덮어쓰고 싶지만 이미 폴더 1에 있고 폴더 2에 중복되지 않은 항목은 그대로 둡니다.
답변1
한 가지 방법으로 폴더를 병합하는 가장 쉬운 방법, 예:
폴더 1 → 폴더 2의 모든 항목을 병합합니다.
을 사용하는 것입니다 rsync
.
rsync -avh folder1/* folder2/
이는 다음을 수행합니다.
- 폴더 1과 그 하위 디렉터리에만 존재하는 모든 파일을 폴더 2로 이동합니다.
- ~ 아니다폴더 2에 이미 있는 내용이 있으면 덮어씁니다.
- 변경된 파일을 덮어쓰고,~하지 않는 한
--ignore-existing
옵션 을 추가하시네요 - 폴더 2에서는 아무것도 삭제하지 마세요.~하지 않는 한
--delete
옵션 을 추가하시네요
이것을 귀하의 상황에 맞게 자유롭게 조정하십시오( 그 반대의 경우 folder1
는 어디일까요).folder2
다음을 호출하여 명령이 수행하는 작업을 확인할 수 있습니다.
rsync -avh --dry-run folder1/ folder2/
스위치 dry-run
는 그것이 무엇을 하는지 보여줍니다.
folder2/
백슬래시에는 특별한 의미가 있으므로 대상이 와 동일하지 않다는 점을 잊지 마십시오 folder2
. rsync
사용법과 추가 옵션은 맨페이지를 확인하세요 .
또한 -P
(에 따라 --help
) 및 (실패한 경우 재시도에 유용함)을 same as --partial --progress
추가하는 것도 권장됩니다.show progress during transfer
keep partially transferred files
답변2
@slhck가 말한 대로 이 작업을 수행하거나 cp
.
$sudo cp -R wordpress/ /Documents/svn/wwwholiday/trunk/wordpress