Windows

支持長文件名的 Windows rsync,還是一個不錯的選擇?

  • August 18, 2014

我目前在 Linux 主機上進行 rsync 以將內容從 Windows 複製到我的 Linux 機器上。但我不能複制長名稱的文件。

我已經嘗試過DeltaCopycwrsynccygwin。據我發現,當文件長度變長時,所有這些工具都拒絕複製文件,這似乎在 255 個字元左右。

此問題已在此處的 cwrsync 論壇上得到解決,據推測,只要 cygwin 1.7 出現並支持 UTF8,它可能會在未來某個時候得到修復。這裡甚至還有一個測試版本

我不太習慣在生產系統上使用測試版本。我希望有人知道另一個 rsync 選項。

作為 rsync 的替代方案,您是否知道另一種工具,我可以從 Windows 主機複製 Linux 上的目錄結構,而不會出現長文件或異常命名文件的問題?重要的是我需要一個可以輕鬆跨 SSH 隧道工作的工具。有些系統超出了防火牆,我相信 SSH 是我將被允許使用的隧道。

我可能錯過了重點,但您是否考慮過在 Windows 上使用Robocopy 。它類似於 RSync,但是您不能直接從應用程序中安排它。

這可以通過為副本編寫批處理文件然後創建計劃任務來克服。Robocopy 是免費的並且非常強大。我經常用它通過Samba和網路在Linux和Windows之間複製文件,Robocopy的恢復能力真的很強大。

啊哈!您可以將 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

引用自:https://serverfault.com/questions/8880