마침표로 끝나는 디렉터리를 복사할 때 rsync 오류가 발생했습니다.

마침표로 끝나는 디렉터리를 복사할 때 rsync 오류가 발생했습니다.

다른 곳에서는 찾을 수 없기 때문에 이상한 질문이지만 정확히 틈새 질문은 아닙니다.

내 모든 음악을 다른 서버로 복사하려고 하는데 파일이 구조를 따릅니다 [artist]/[artist] - [year] - [album]/[track]. [title]. 나는 명령을 사용하고 rsync -azH /path/to/music user@password:/remote/path/to/music있으며 마침표로 끝나는 앨범의 노래를 제외하고 모든 것이 잘 복사됩니다. 이를 사용하면 디렉토리가 생성되지만 파일이 복사되지 않아 오류가 발생합니다 rsync: mkstemp "/path/to/music/Dead Kennedys/Dead Kennedys - 1982 - Plastic Surgery DisastersIn God We Trust Inc./.01. Advice From Christmas Past.flac.UVzf3u" failed: No such file or directory (2). 또한 참고하세요 .UVzf3u. 파일 끝에서 해당 파일이 어디서 왔는지는 모르겠지만 실제 파일은 .flac.

어떤 아이디어가 있나요?

답변1

고마워, 이것이 나에게 답을 주었다. 동일한 Linux 시스템에서 ext4에서 fat32 썸 드라이브로 rsync를 시도합니다. rsync가 만족하지 못한 폴더는 100개 중 3개였습니다. 매번 대상을 삭제하고 다시 복사해야 한다고 주장합니다! 플래시 드라이브에는 적합하지 않습니다.

자세한 내용, 디버그 플래그, 정보 플래그가 여러 번 발생하고 그 이유를 알 수 없습니다. 필사적으로 github의 소스 코드를 샅샅이 뒤져봤지만 단서가 없었습니다. 시간 낭비.

그러다가 대상 폴더 끝에 마침표가 누락되어 여기로 연결되는 것을 발견했습니다.

roaima는 이것이 rsync 버그와 같은 "알려진 문제"라고 언급했지만 완전히 파악하지는 못했습니다.

Windows(및 Linux용 FAT 드라이버 확장)에서는 파일 이름이나 폴더가 마침표로 끝나는 것을 허용하지 않습니다. https://stackoverflow.com/questions/11681207 익숙한 것 같은데 잊어버렸어요.

따라서 rsync:

  • 대상 폴더 'foo'를 찾을 수 없습니다.
  • "foo"라는 대상 폴더를 찾았습니까?
  • 대상에서 "foo" 제거
  • 그런 다음 "foo"를 다시 복사하세요!
  • "foo"라는 이름의 또 다른 대상 폴더를 생성합니다! ! !
  • 헹구고 반복하십시오.

소스 폴더 이름을 변경하는 것 외에는 쉬운 수정 방법이 없습니다. 일반적으로 필요할 때 유니코드에서 유사한 문자를 선택합니다.

관련 정보