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

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

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

답변1

rsync재귀를 사용하여 dest디렉토리를 해당 디렉토리의 정확한 복사본으로 만들 려면 다음을 수행하십시오 src.

rsync -a src/ dest

매뉴얼 rsync페이지에서는 작동 방식을 설명합니다.

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

답변2

답변3

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

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

이전 git이 /old/path/old_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/소스 디렉터리의 모든 콘텐츠를 대상 디렉터리에 동기화하는 데 사용합니다 .

관련 정보