데이터 전송을 수행 중입니다. 기존 파일 시스템은 현재 다른 경로에 있는 디렉터리에 크게 의존하고 있습니다. 이것은 코드를 온라인으로 저장하는 git 디렉토리입니다. 나는 그것을 이동하거나 이름을 바꿀 권리가 없습니다.

그래서 내가 할 수 있는 일은 이 디렉터리를 동일한 이전 경로로 재동기화하는 것입니다. 그러나 디렉토리 이름도 변경되었습니다.

디렉터리를 다른 이름을 가진 대상 디렉터리로 재동기화할 수 있는 쉬운 방법이 있습니까?

답변1

디렉토리를 디렉토리의 정확한 복사본으로 rsync재귀적으로 만드는 데 사용하려면 다음을 수행하십시오 .destsrc

rsync -a src/ dest

매뉴얼 rsync페이지에서는 이것이 어떻게 작동하는지 설명합니다:

소스에 후행 슬래시가 있으면 [...] 대상에 추가 디렉터리 수준이 생성되는 것을 방지할 수 있습니다. /"디렉토리를 이름으로 복사"하는 것이 아니라 "이 디렉토리의 내용을 복사"하는 의미로 소스의 후행을 생각할 수 있습니다. [...]

답변2

답변3

이전 파일 시스템과 새 파일 시스템 모두 시스템에서 액세스할 수 있는 경우 rsync 대신 기호 링크 사용을 고려하십시오. 사용 중인 rsync 명령이 호스트를 지정하지 않는 경우(또는 동일한 호스트인 경우)에 해당됩니다. 동일한 호스트에서 이름이 다른 두 디렉터리를 미러링하려고 합니다. 데이터를 복제하므로 rsync를 사용하지 마십시오. 동기화를 유지하려면 rsync를 자주 실행해야 합니다.

기호 링크를 사용하면 두 개의 디렉토리(다른 이름 포함)를 미러링하고 공간이 거의 필요하지 않은 일회성 수정이 가능합니다. 이는 다른 디렉터리를 가리키는 별칭 디렉터리를 만드는 것과 같습니다.

/old/path/old_git라는 디렉터리에 이전 git이 있고 이제 코드 저장소가 /new/path/new_git으로 이동했다고 가정해 보겠습니다.

넌 할 수있어:

cd /old/path
rm -rf old_git     (if you still have it there, get rid of it, or move it out of the way)  
ln -s /new/path/new_git old_git

그러면 다음과 같은 링크가 생성됩니다.

/old/path/old_git -> /new/path/new_git

따라서 new_git에 입력된 모든 항목은 데이터를 복제하거나 지속적으로 동기화할 필요 없이 이전 방식으로 즉시 사용할 수 있습니다.

답변4

이제 대체 솔루션을 찾았습니다.

를 사용하면 rysnc -r /origin/* /target/원본 디렉터리의 모든 내용을 대상 디렉터리로 동기화할 수 있습니다.

관련 정보