iCloud のドキュメントへ Terminal コマンドからシンボリックリンクを作成する際に、初歩的な問題で数十分ほどつまづきました。
今回はシンボリックリンクのおさらいを兼ねて、iCloud Document へシンボリックリンクを作成してみたいと思います。
目次
- シンボリックリンクとは
- シンボリックリンクの使い道
- iCloud の Mobile Document へのシンボリックリンクを作成する
シンボリックリンクとは
特定のファイルやディレクトリを指し示す別のファイルを作成し、それを通じて本体を参照できるようにする仕組みで、Mac でいうところのエイリアスのようなものです。
エイリアスとシンボリックリンクの違いは、エイリアスがただのリンクであるのに対して、シンボリックリンクは、元のファイルやフォルダと同等に扱うことができると言う点です。
シンボリックリンクの使い道
複数台のマシンでアプリや開発環境を共有したい場合、マシンごとに設定を行うのは面倒です。
そういった場合、iCloud や Dropbox へ設定ファイルを作成しておき、各マシンのシンボリックリンクから クラウドに保存された設定ファイルを参照することで、マシンが違っても同じ環境で作業を行うことができます。
マシンを乗り換えた場合やリストアを行った場合には、最初からアプリや開発環境の設定を行うことなく、シンボリックリンクを作成するだけでこれまでどおりの環境で作業が行えるといった使い方ができます。
iCloud の Mobile Document へのシンボリックリンクを作成する
シンボリックリンクを作成するコマンドは以下の通りです。
[code]
ln -s pathA pathB
[/code]
このコマンドで pathB から pathA(実体)へのシンボリックリンクが作成されます。
Windows のコマンドプロンプトだとこの pathA と pathB の定義が反対であるため、いつもどっちがどっちだったかを忘れてしまいます。
問題点
基本的にこの ln -s コマンドでシンボリックリンクが作成されるはずなのですが、iCloud を参照する場合問題が発生します。
ユーザーのホームディレクトリに abc.txt というシンボリックリンクを作成し、iCloud のモバイルドキュメント直下の abc.txt を参照したい場合は以下の様なコマンドになると思います。
[code]
ln -s /Users/USERNAME/Library/Mobile Documents/com-apple-CloudDocs/abc.txt ~/abc.txt
[/code]
うまくいく場合はこのまま問題なくシンボリックリンクが作成されますが、ドットから始まる不可視ファイル等に対してシンボリックリンクを作成した場合 No such file or directory のエラーが返されてしまうケースがあります。
解決法
よく入力したコマンドを見れば分かることなのですが、Mobile Document のフォルダ名にスペースが入っているため、これが悪さをしていたようです。スペースをエスケープすると無事シンボリックリンクが作成されました。
[code]
ln -s /Users/USERNAME/Library/Mobile\ Documents/com-apple-CloudDocs/abc.txt ~/abc.txt
[/code]
まとめ
今回のケースは Dropbox から iCloud へ一部の環境や設定ファイルを移行している最中の出来事でした。
両者とも便利なサービスなので、これからうまく使い分けていきたいと思います。
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。