支持长文件名的 Windows rsync,还是一个不错的选择?

Zor*_*che 13 windows rsync file-transfer

我目前在 Linux 主机上使用 rsync 将内容从 Windows 复制到我的 Linux 机器上。但我无法复制长名称的文件。

我尝试过DeltaCopycwrsynccygwin。据我发现,当文件长度变长时,所有这些工具都拒绝复制文件,这似乎在 255 个字符左右。

这个问题在cwrsync论坛讨论在这里和它理应可以在将来某个时候,每当Cygwin的1.7出来和支持UTF8固定。甚至有一个测试版本在这里

我不太习惯在生产系统上使用测试版本。我希望有人知道另一个 rsync 选项。

作为 rsync 的替代方案,您知道我可以从 Windows 主机复制 Linux 上的目录结构的另一种工具吗?重要的一点是我需要一个可以轻松跨 SSH 隧道工作的工具。一些系统超越了防火墙,我相信 SSH 是我被允许使用的隧道。

Bin*_*fit 6

我可能忽略了这一点,但您是否考虑过在 Windows 上使用Robocopy。它类似于 RSync,但是您不能直接从应用程序中安排它。

这可以通过为副本编写批处理文件然后创建计划任务来克服。Robocopy 是免费的并且非常强大。我经常用它在Linux和Windows之间使用Samba和网络复制文件,Robocopy的恢复能力真的很强大。


Joh*_*nie 5

啊哈!您可以将 subst 与 rsync 一起使用。

如果你有一个很深的目录树 d:\very\long\file\n\ame\etc\etc 那么实验表明你可以将 X: 替换为 d:\very\long\file\name\etc 然后 rsync 到 and来自 /cygdrive/x/whatever。这在客户端和服务器端都有效。

现在,虽然您可以使用战略替换来减少文件名的长度,但我不知道这是否允许您绕过 260 个字符的限制。它也可能不是很方便。不过值得一试。

约翰·雷尼。

----8<----

请参阅http://www.ratsauce.co.uk/notablog/LongFilenames.asp了解我对长文件名的漫谈。

我不知道有什么方法可以让 Cygwin 使用 \\?\ 前缀,显然当前版本的 Cygwin 并没有在内部使用该前缀。据推测,他们正在新版本中解决这个问题,这就是为什么它将支持超过 260 个字符的名称。我到处都在使用 Cygwin rsync,所以和你一样,我热切地等待发布。

Cygwin rsync 还存在其他一些问题。除非您指定 cygwin=nontsec,否则它会将 ACL 弄得一团糟,并且它往往会挂在非常大的目录上。在我死之前要做的事情清单上是编写一个不会有这些问题的本地 Windows 版本的 rsync。我相信这已经完成了,但只是作为商业版本而不是公共领域的版本。

JR