다음 명령을 사용하여 한 디렉터리의 내용을 완전히 반복적으로 다른 디렉터리에 복사합니다.
rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/
예상대로 작동합니다. 단, 첫 번째 파일(알파벳순)을 제외하고는 디렉터리이든 파일이든 복사되지 않습니다. 다른 모든 파일은 복사됩니다. 왜?
중요한 경우 내 운영 체제는 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
) 이 경우에도 제거해야 합니다.
또한 *
소스 경로 끝에는 사용하지 마십시오. 일반적으로 숨겨진 이름과 일치하지 않기 때문입니다. 모든 이름에 와일드카드를 사용하면 dir1
목록이 너무 길어서 명령이 전혀 실행되지 않을 수도 있습니다.
소스 경로가 슬래시로 끝나는지 확인하세요. 대상 경로 끝에 슬래시는 아무런 차이가 없습니다. 소스 경로에서 슬래시를 제거하면 소스 경로 끝에 슬래시가 dir1
복사 됩니다 .dir2
dir2
dir1
무엇보다도 이를 사용하여 -H
대상에서 하드 링크가 올바르게 설정되었는지 확인하고 --sparse
희박할 수 있는 파일(예: 사전 할당된 디스크 이미지)을 복사하고 있는지 확인할 수 있습니다.
--delete
에도 사용삭제소스 파일 계층 구조의 일부가 아닌 대상의 항목입니다. 주의해서 사용하십시오. 먼저 테스트 실행을 위해 -n
( )를 사용할 수 있습니다 .--dry-run