web-dev-qa-db-ja.com

Windowsでのrsync +非ASCIIファイル名

現在のWindowsバージョンで実行されるrsyncのバージョンはありますかおよび非ASCIIファイル名を処理できますか?私がチェックしたすべてのバージョン(cwRsyncとrsync.netクライアントを含む)は、名前にUnicode文字が含まれているファイルで惨めに失敗します。

そのようなバージョンのrsyncが存在しない場合、WindowsとLinux間のファイルの帯域幅効率の高い同期にどのotherツールを使用できますか?

比較的遅いリンクを介して、大きく、めったに変更されないファイルツリーを同期しています。 rsyncスタイルの同期とフルコピーのアプローチの違いは重要です。

7
9000

rsyncは、ファイル名文字エンコード変換用の--iconvオプションを提供します。ソースとターゲットのエンコーディングをきめ細かく制御するための引数を受け入れます。

Rsyncのmanページから:

[...] you can fully specify what conversion to do by giving a 
local and a remote charset separated by a comma in the 
order --iconv=LOCAL,REMOTE, e.g.  --iconv=utf8,iso88591.
8
artistoex

DeltaCopyを使用しようとした場合は、UTF-8対応のcygwin(= cygwin1.dll)を http://www.oki-osk.jp/esc/utf8-cygwin/ から入手してください。日本の必需品であり、少なくとも2006年以来それを持っています。

7Zipを2回使用して、dllバイナリを解凍します。次に、元のcygwin1.dllをDeltaCopyプログラムフォルダから削除し、代わりに新しいものを配置します。注意:古いものと新しいものはまったく同じ外観です。どちらが新しいかを明確にしてください。クライアントとサーバーのdllを変更した後、2台のWindowsマシン間での送信は正常に機能します。残念ながら、クライアントコンソールは、マルチバイトUTF-8文字を含むファイル名を表示しようとすると意味不明な表示をしますが、送信は機能します。

バックアップサーバーにLinuxまたはその他のUNIXに似たもの(Nas4Freeなど)があり、Windowsマシンのクライアントのみが修正された場合にどうなるかは試していません。

明らかに、rsyncはUTF-8を処理しますが、cygwinは処理しません。 DeltaCopyのcygwinでは、UTF-8ファイル名のスペルが最初に間違っており、ファイルのコピーを作成しようとすると、ファイルが消えたように見えます。

2
user287001