Dropbox

Mac OS X で rsync を使おう

MGMapsのローカルマップにすっかりハマっているわけですが、地図ファイルのコピーでMac OS Xのファインダーの挙動にとまどってしまいました。別地域の地図をMGMapsCacheにマージしようとHDD上のMGMapsCacheをMiniSD上にドラッグ・ドロップしたところ置き換えになってしまいました。Windowsであれば上書きで目的が達成できます。

古くからのMacユーザーには当たり前の事なのでしょうが、私のような新参者には驚きです。苦しいときのGoogle頼みで調べてみても今ひとつ良い解決策が見つかりません。結局のところターミナルを開いてrsyncコマンドを使うというのが手軽で良さそうです。Unixに馴染みのある人には説明の必要もない事ですが、自分自身の覚え書きの意味でコマンドの実行例と簡単な説明を書いておきます。

[ MGMapsCacheを例にとつた基本形 ]
rsync -avg ./MGMapsCache /Volumes/MCARD –exclude .DS_Store
(上のexcludeの前にあるハイフンは二つです)

普通はオプション avg を指定すれば良いようです。その他の注目すべきオブションは以下の通りです。外付けのドライブは /Volumes/ 下にマウントされます。
今回のようにMac以外のためにコピーする場合は –exclude .DS_Store を指定すると良いでしょう。(2007/07/02 追記)

[ その他のオプション ]
-S
ファイルの種類によってはスペース効率の良いコピーを行います。とりあえず指定しておくということでも構わないようです。どういうファイルに効くのか、私は今ひとつ分かっていません 🙁

-E
Mac OS Xのリソースフォークも一緒にコピーする時に指定します。今回のようにSDカード(FAT)にコピーするときは必要ありません。

-u
このオプションはコピー元、コピー先に同じファイル名が存在するときに意味を持ちます。コピー先の同名ファイルのタイムスタンプが新しい時に -u が指定されているとコピーを行いません。

[ コピー元のパス名の最後の / の有無 ]
コピー元のパス名の最後に / を付けるかどうかで挙動が変わります。通常は深く考えずに使用すれば大丈夫と思いますが、思わぬ結果を招くことがあるので練習をしておくことをお勧めします。

パス名の最後に / を付けると、そのディレクトリーのコピー先での作成を抑制するというのが、その意味です。例えば ./MGMapsCache の場合は MGMaspCache自体もコピーの対象になりますが ./MGMapsCache/ にすると MGMapsCacheの下にあるディレクトリーとファイルがコピーの対象になるという意味です。

Trackback

4 comments untill now

  1. こんにちはー。
    遅ればせながらMGMapsアルファ版の導入を進めています(^^;。

    まずはMapTileCacher.perとMapTileCacher.perlを試したのですがこれは便利ですね。
    もう少し慣れたら自分もMapファイルを作ってみようと思います。
    MGMapsとコザックさんに感謝!

  2. すいません、名前記入中に間違えてEnterを押してしまいましたm(_ _)m

  3. ま〜さん、
    どうも。おそらく「MapTileFE.plとMapTileCacher.perl」のことですね。結果として微力ながらMGMapsに協力することが出来て楽しいです。
    MGMapsの作者はGUI版のMapTileCacher公開も考えているようです。座標の指定などは楽になるでしょうが時間的な手間は大差ないかも。

  4. >「MapTileFE.plとMapTileCacher.perl」
    すいません、名前を間違えてしまいましたm(_ _)m

    GUI版は確かに微妙かも(^^;<うちはGUI無しFreeBSDで動かしてます
    ただ、コマンドラインが苦手な方がいるのも確かなので、あればそれはそれで便利かもしれませんね。

Add your comment now