Zor*_*che 13 windows rsync file-transfer
我目前在 Linux 主机上使用 rsync 将内容从 Windows 复制到我的 Linux 机器上。但我无法复制长名称的文件。
我尝试过DeltaCopy、cwrsync和cygwin。据我发现,当文件长度变长时,所有这些工具都拒绝复制文件,这似乎在 255 个字符左右。
这个问题在cwrsync论坛讨论在这里和它理应可以在将来某个时候,每当Cygwin的1.7出来和支持UTF8固定。甚至有一个测试版本在这里。
我不太习惯在生产系统上使用测试版本。我希望有人知道另一个 rsync 选项。
作为 rsync 的替代方案,您知道我可以从 Windows 主机复制 Linux 上的目录结构的另一种工具吗?重要的一点是我需要一个可以轻松跨 SSH 隧道工作的工具。一些系统超越了防火墙,我相信 SSH 是我被允许使用的隧道。
啊哈!您可以将 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