2010-08-05: -fastcheck true について追記
2010-08-19: unison コマンドのスペルミスを修正
GoodReader の WebDAVサーバー をマウントして、 Unison という対話的双方向 rsync みたいなツールで双方向の同期をとる方法。Mac 限定で説明しますが、 Windows でも Unison 使えるはずだし、 WebDAV マウント (ネットワークドライブ?) できるはずなので応用してみてください。
まずは unison のインストール。
$ sudo port install unison
GoodReader の WebDAVサーバーを起動。
unison を実行 (もちろん実行前にバックアップしてください)。
$ unison -perms 0o0 -fastcheck true ~/Dropbox/pdf /Volumes/iPodTouch.local
-perms 0o0 は双方向でパーミッションの同期をしないというオプション。
-fastcheck true オプションを付けると同期するかどうかの確認が速くなります。
unison は対話的なコマンドなので最初に実行するとすべて未知のファイルとしてどうするかいちいち聞いてくるのですが、落ち着いて対応すれば難しくないはずです。
- すでに双方にあるファイルが同じなら ">" (left to right) のローカルから iPhone へ (実際には転送されないと思う)
- .DS_Store とかは、 "N" (permanently ignore paths ending with this name)
- 同じ内容だけど名前の違うフォルダやファイルはとりあえず skip して名前を調整してから次回の unison 実行で同期
unison の実行が終わったら、 iPhone 側の "WiFi-transfer" を "stop" する前にマウントを先に解除したほうがいいですね。たぶん。
以上。