复制以句点结尾的目录时出现 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 拒绝满足。每次都会坚持删除目的地并再次复制!不太适合闪存驱动器。

多次出现冗长的内容,调试标志,信息标志,不会告诉我原因。无奈之下,开始梳理github上的源码,没有任何线索。浪费了几个小时。

然后我注意到目标文件夹末尾缺少一个句点,这导致我来到这里。

roaima 提到这是一个“已知问题”,就像 rsync 错误一样,但这并不能完全捕获它。

结果 Windows(以及 Linux 的 FAT 驱动程序扩展)不允许文件名或文件夹以句点结尾: https://stackoverflow.com/questions/11681207 听起来有点熟悉,但我忘了。

所以,rsync:

  • 找不到目标文件夹“foo”。
  • 是否找到名为“foo”的目标文件夹
  • 从目的地删除“foo”
  • 然后再次复制“foo.”!
  • 产生另一个目标文件夹,名为“foo”!!!
  • 冲洗并重复。

除了更改源文件夹名称之外,没有简单的修复方法。通常,当需要时,我会从 Unicode 中选择一个相似的字符。

相关内容