MacのZumoDriveでFinderから日本語ファイルにアクセスするために

ZumoDriveに濁音・半濁音を含む日本語ファイルを作成すると

$ echo test >/Volumes/ZumoDrive-501/テストだよ.txt
$ open -a TextEdit /Volumes/ZumoDrive-501/テストだよ.txt 
The file /Volumes/ZumoDrive-501/テストだよ.txt does not exist.

となってアクセスできなくなります.Finderからアクセスしようとすると
20110320194841
となります.
ちなみにアクセスできないのはMac用のアプリで,UNIXコマンドからはアクセスできます.

おそらく,MacのファイルシステムはUTF8-MACなので,Mac用のアプリがUTF8のファイル名を受け取るとUTF8-MACに変換してアクセスしようとしているのではないかと思います.
試しに次のようにして2種類のファイルを作成します.

$ cd /Volumes/ZumoDrive-501/
$ echo test utf8 >テストだよ.txt
$ echo test utf8-mac >`echo テストだよ.txt | iconv -f utf8 -t utf8-mac`
$ ls
テストだよ.txt         テストだよ.txt

「テストだよ.txt」を開いてみます.

$ open -a TextEdit テストだよ.txt

20110320194842
UTF8-MACのファイルが開きましたね.
Finderからアクセスすると,どちらをクリックしても同じファイルが開きます.

というわけで,ファイル名をUTF8-MACに変換してやればアクセスできるようになるみたいです.
一括で変換しようと思うと次のような感じですかね?
※実行は自己責任でお願いします!

$ pwd
/Volumes/ZumoDrive-501
$ find . -type f -print0 | while read -r -d '' file; do eval mv \""$file"\" \""`echo "$file" | iconv -f utf8 -t utf8-mac`"\"; done

※この後にキャッシュしてあるファイルを開こうとすると最初は失敗するかもしれませんが,2回目以降は大丈夫だと思います
※ファイル名変換後のファイルにはWindowsとUbuntuとiPhoneのZumoDriveでもアクセスしてみましたが問題ありませんでした

やってることはめちゃくちゃ単純なんですが,このワンライナーに辿り着くまでにめちゃくちゃ試行錯誤を要しました…・
ワンライナー作成の参考にしたページはこちら↓

あ,ちなみにMacのファイルシステム上で日本語ファイルを作成しても勝手にUTF8-MACになるみたいです.
ZumoDriveと同様MacFUSEを使っているSSHFSも同じような現象が確認できたので,SSHFSで日本語ファイルにアクセスできないと嘆いている人もファイル名を変換するといいのではないかと思います.

ではでは,快適なZumoDrive生活をっ!!

広告
Twitterなどを装ったフィッシングサイトにご用心! RのUnicode正規化関数(パッケージ)を作ってみた
※このエントリーははてなダイアリーから移行したものです。過去のコメントなどはそちらを参照してください