다른 이름을 가진 새 디렉토리로 디렉토리를 재 동기화하는 방법은 무엇입니까? 깊이 의존합니다.

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

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

디렉토리를 다른 이름으로 대상 디렉토리에 재 동기화하는 쉬운 방법이 있습니까?



답변

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

rsync -a src/ dest

rsync이 어떻게 작동 매뉴얼 페이지 설명 :

소스에서 후행 슬래시는 […] 대상에서 추가 디렉토리 레벨을 작성하지 않도록합니다. /“이름으로 디렉토리 복사”[…]와 반대로 소스 에서 후행 을 “이 디렉토리의 내용 복사”를 의미하는 것으로 생각할 수 있습니다 .


답변

이전 파일 시스템과 새 파일 시스템이 모두 시스템에 액세스 가능한 경우 rsync 대신 기호 링크를 사용하십시오. 사용중인 rsync 명령이 호스트를 지정하지 않거나 동일한 호스트 인 경우에 해당됩니다. 동일한 호스트에서 다른 이름을 가진 두 개의 디렉토리를 미러링하려고합니다. 데이터를 복제하고 있기 때문에 rsync를 사용하지 마십시오. 동기화를 유지하려면 rsync를 자주 실행해야합니다.

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

/ 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에 넣은 모든 것은 데이터를 복제하지 않고 지속적으로 동기화하지 않고도 이전 방식으로 즉시 사용할 수 있습니다.


답변

대체 솔루션을 찾으십시오.

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


답변