
다음 명령을 사용하여 한 디렉터리 내용의 전체 재귀적 복사본을 다른 디렉터리로 만듭니다.
rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/
디렉터리든 파일이든 첫 번째 파일(알파벳 순서)이 복사되지 않는다는 점을 제외하면 예상대로 작동합니다. 다른 모든 파일은 복사됩니다. 왜 ?
중요한 경우 내 OS는 MacOS 10.14.6입니다.
답변1
옵션 -e
에는 인수가 필요하므로 해당 인수에 대한 첫 번째 파일 이름을 사용합니다. -e
리모컨에 연결하는 데 사용할 명령을 설정했지만 리모컨을 사용하지 않는 이유가 무엇인지 잘 모르겠습니다 . .-e
답변2
/path1/to1/dir1
라는 디렉토리의 전체 복사본을 만들려면 /path2/to2/dir2
다음을 사용하십시오.
rsync -av /path2/to1/dir1/ /path2/to2/dir2
-z
로컬 복사본에 압축( )을 사용하는 것은 의미가 없습니다 . 옵션 -e
은 네트워크 연결을 설정하는 데 사용되는 명령을 지정하므로(첫 번째 파일을 복사할 때 명령이 실패하는 이유이며 rsync
이를 옵션에 대한 옵션 인수로 사용함 -e
) 이 시나리오에서도 해당 명령을 제거해야 합니다.
*
또한 소스 경로의 끝에는 일반적으로 숨겨진 이름과 일치하지 않으므로 사용하지 마세요 . 아래의 모든 이름을 Glob하면 dir1
명령이 전혀 실행되기에는 너무 긴 목록으로 확장될 수도 있습니다.
소스 경로가 슬래시로 끝나는지 확인하세요. 대상 경로 끝에 슬래시가 있어도 아무런 차이가 없습니다. 소스 경로에서 슬래시를 제거하면 dir1
내부에 복사됩니다 dir2
. 소스 경로 끝에 있는 슬래시는 dir2
의 복사본을 만듭니다 dir1
.
-H
그 외에는 하드 링크가 대상에서 올바르게 설정되었는지 확인하고 --sparse
희박할 수 있는 파일(예: 미리 할당된 디스크 이미지)을 복사하고 있다는 것을 알고 있는 경우 사용할 수 있습니다 .
--delete
또한 사용삭제소스 파일 계층 구조의 일부가 아닌 대상의 항목입니다. 이것을 주의해서 사용하십시오. 먼저 -n
( )를 사용하여 테스트 실행을 수행할 수 있습니다 --dry-run
.