小编Jak*_*kob的帖子

iconv 模块(与 rsync 一起使用)以避免本地 NTFS 分区中的 Windows 非法文件名

我想将一个 NTFS 卷本地附加到我的 unix (Ubuntu) 计算机,并使用 rsync 将一些 unix 目录复制到其中,以便结果在 Windows 下可读。

\n\n

我不关心所有权和权限。如果能保留修改日期就好了。我只需要目录和文件(符号链接也很好;但如果它们无法复制则不是问题)。

\n\n

两个明显的问题是:区分大小写,以及 Windows 文件名中的非法字符。例如,在Linux中我可以有两个文件“a”和“A”;我可以将它们复制到 NTFS 卷,但在 Windows 中我将能够访问(最多?)其中之一。但我很高兴忽略这个问题。我感兴趣的是Windows文件名中的非法字符,它们是<、>、:、"、/、\\、|、?和*(好吧,实际上也是ascii 0-31,但我不关心这个) . 以“.”结尾的文件也可能有问题?)。

\n\n

我希望 rsync 自动“重命名”,例如,一个名为“a:”的文件,例如 a(COLON),以合法名称结束(并且理想情况下,将 a(COLON) 翻译回 a :)

\n\n

rsync 是否可以自动重命名文件以避免 Windows 中禁止的字符?

\n\n
    \n
  • 据我了解,rsync 可以使用iconv来完成此类任务;Windows 文件名有标准的 iconv 模块吗?(我简要地研究了自己的 gconv 模块的编程,但缺乏 C 知识,这似乎太复杂了)。
  • \n
  • 有人告诉我rdiff-backup可以做一些类似的转换,但主页只是提到“自动”完成一些事情,我不确定本地安装的 NTFS vomlume 是否会以可靠的方式触发重命名?
  • \n
  • 我知道有fuse-posixovl,但这对于我的目的来说似乎有点矫枉过正,而且它似乎没有很好的记录(哪些字符将以哪种方式翻译?所有文件名都会被截断为 8.3 或其他) ?我可以避免携带所有者/权限信息的附加文件,我不需要这些信息,等等)
  • \n
  • 我知道我可以通过使用例如tar文件来避免所有这些问题;但这不是我想要的。(特别是,我想在Windows中进一步从NTFS卷复制到另一个备份分区,仅复制更改的文件)
  • \n
  • 我知道挂载 NTFS 时有“ windows_names ”选项;但这将防止创建有问题的文件,而不是重命名它们。
  • \n
\n\n

更新: …

windows rsync ntfs fuse rdiff-backup

7
推荐指数
1
解决办法
5833
查看次数

标签 统计

fuse ×1

ntfs ×1

rdiff-backup ×1

rsync ×1

windows ×1