Dropboxビジネスアカウントのパス名に怒っている人のために


研究室内での情報共有を目的として数年前からDropboxのビジネスアカウントを使っています.個人的にはDropboxをアップグレードして容量を増やしていたのですが,学生さんたちが5GBの壁の前にケチって,そのために情報共有に支障を感じてから,事実上容量無制限な環境を研究室で用意することにしました.

ところで,Dropboxビジネスについてひとつだけ本当に頭にきていることがあります.それは,Dropboxディレクトリのパス名です.ぼくらの場合,なんと勝手にDropbox (smartnova)にされてしまいました.smartnovaはビジネスアカウントの名称なのでいいんですが,パス名に空白と括弧を加えられたものだから,いろんなスクリプトが誤動作し始めて移行期は大変なことになりました.このことに怒っているひとはポツポツいるようで,「どうしてこんな阿呆な設計なの?」から「Node.jsのスクリプトが動かなくなった.知ってたら,ビジネスアカウント使わなかったぜ」までいろんな度合いでお怒りです.

でも,ハードリンクを作ることできれいに解決しました.

とりあえず DropboxDropbox (smartnova) とシンボリックリンクで凌いだり,スクリプトを修正するなど場当たり的な対応をしていたのですが,ときどきどうにもなりません.

今日は Qt Creator を使おうとしたのですが,そのなかでプロジェクトの初期化に使う qmake コマンドの実行中に bash がこのパス名で混乱してエラーが出るという事態が発生しました.

~/Libraries やら ~/.config/QtProject の設定ファイルをいろいろ修正してみたんですが,どうにもなりませんでした.

もう我慢がならなくなってハードリンクを使おうと思ったんですが,Mountain Lionあたりからディレクトリへのハードリンクを作れなくなってたんですね.でも,システムコールレベルではその道が残されているので,大丈夫.自分で作ってもいいんですが小さなユーティリティがあったので,使わせていただくことにしました.

と こ ろ がhardlink "Dropbox (smartnova)" dropbox とやっても,Operation not permittedとエラーが出て,設定できない.もしかして,最新のOSXではシステムコールレベルでハードリンクを禁止されたんだろうか?

hardlinkの開発元のIssueでもギャーと言っている人たちがいました.でも,この議論をよく読むと,兄弟ディレクトリ間のハードリンクは作成できないんだそうです.

「兄弟間だけなの?」

そう.兄弟間でなければ大丈夫.ということで,~/dropbox/smartnova~/Dropbox (smartnova)~/dropbox/private~/Dropbox (個人) という二つのハードリンクを作成しました.

これらのリンクを張ったところ,うんともすんとも動かなくなっていた Qt Creator が機嫌よく動作するようになりました.めでたい.

当面,Appleさまがディレクトリへのハードリンクを見逃してくれることを祈るばかり.