No.292


【Windows7】ディレクトリ間でファイルの同期を取る

Windowsにもrsyncコマンドが欲しい

 ディレクトリ間のファイルの同期を取るコマンドで有名なのはUnixのrsyncコマンドがある。差分転送や不要ファイル削除などを行ってくれる高機能なツールだ。

 Windowsにも同様のrobocopyコマンドが用意されている。 (Windows7以降)

 これもrsync同様高機能。めちゃくちゃオプションがあるのでよく使うものだけメモしておく。


オプションとよく使うコマンド

 よく使うコマンドは下記の書式。

 「ファイルの削除も反映、ファイルのタイムスタンプも同期」となる。

robocopy コピー元ディレクトリ コピー先ディレクトリ /MIR /COPYALL

 よく使うオプションは下記の通り。

オプション 意味
/MIR 空のディレクトリも含めた再帰処理と、削除ファイルの反映も行う。いわゆるミラーリング。
/COPYALL タイムスタンプや所有者情報まで含めて、ファイルの情報を全て保存する。
/L robocopyをテスト実行する。画面出力は同じなので、挙動を確認したいときに便利。

 ディレクトリのタイムスタンプなどを保存するためには/DCOPYオプションがあるが、処理が重くなるうえにディレクトリのタイプスタンプはそれほど意味が無いと思うので使っていない。


参考

 robocopyのGUI版とも言えるツールが存在している。

 RichCopyというツールで、Microsoft社の技術者向けWebマガジン「TechNet Magazine」で公開されている。

2009年4月号 ユーティリティスポットライト RichCopy