rsync가 대상 디렉터리에 이미 존재하는 파일을 복사하려고 합니다.

rsync가 대상 디렉터리에 이미 존재하는 파일을 복사하려고 합니다.

다음 명령을 실행하여 rsync를 사용하여 다음 파일만 복사하려고 합니다.

  • 새로운
  • 다양한 크기로 나오세요
rsync -niav --size-only   /home/me/source/Electronica  /media/externalDrive/dest/Electronica

그러나 이 테스트를 실행하면 다음과 같은 출력이 생성됩니다.

>f+++++++++ Electronica/music/AlbumArt_{F0CB439F-A1FC-47DB-A698-C561191F3FDE}_Large.jpg
>f+++++++++ Electronica/music/AlbumArt_{F0CB439F-A1FC-47DB-A698-C561191F3FDE}_Small.jpg
>f+++++++++ Electronica/music/Folder.jpg

나는 이것을 파일이 복사되었다는 의미로 해석합니다. 하지만 크기는 똑같습니다! (단, 시간과 깃발은 다릅니다.) rsync는 외장 하드 드라이브(다른 형식)를 의미하기도 합니다.

또한 다음 명령을 시도했습니다.

rsync -niav --size-only --ignore-times  /home/me/source  /media/else
rsync -niav --size-only --ignore-existing /home/me/source  /media/else

그러나 파일은 여전히 ​​같은 방식으로 나타나므로 복사된다는 의미입니다. 또 무엇을 시도할 수 있나요?

홈페이지 설명에 어떤 문제가 있나요?

--size-only     skip files that match in size

답변1

당신은 rsync고전적인 "후행 슬래시 함정"에 빠졌습니다.
소스 경로가 슬래시로 끝나지 않으면 rsync소스 파일이 복사됩니다목차. 복사할 예정이라면콘텐츠소스 디렉터리의 경우 슬래시로 끝나야 합니다.

다음 위치에 있는 파일을 복사한다고 가정하고 예를 살펴보겠습니다 /home/me/source/Electronica/music/Folder.jpg.

rsync -a /home/me/source/Electronica  /media/externalDrive/dest/Electronica

복사할 것이다Electronica 목차/media/externalDrive/dest/Electronica/Electronica/music/소스에서 대상까지 생성되어 거기 에 저장 됩니다 Folder.jpg.

rsync -a /home/me/source/Electronica/  /media/externalDrive/dest/Electronica

복사할 것이다콘텐츠디렉토리의 디렉토리이므로 그 아래 디렉토리를 Electronica복사하고 (존재하지 않는 경우 ) .music/media/externalDrive/dest/Electronica/Folder.jpg/media/externalDrive/dest/Electronica/music/Folder.jpg


상황을 더 혼란스럽게 만들기 위해,아니요에도 불구하고목적지경로는 슬래시로 끝납니다.

모든 경로를 슬래시로 끝내는 습관을 들이면 rsync불쾌한 놀라움을 피할 수 있습니다.

관련 정보