シンボリックリンクとは
OSのファイルシステムの機能の一つで、特定のファイルやディレクトリを指し示す別のファイルを作成し、それを通じて本体を参照できるようにする仕組み。
Mac OS X のエイリアスやWindowsのショートカットに似ている。
シンボリックリンクを作成
以下ターミナルで次のコマンドを実行する。
それぞれのフォルダの間に、半角スペースを忘れずに入れる。
ln -s [シンボリックリンクを作成したいファイルのパス] [シンボリックリンクを置くフォルダのパス]
-s # シンボリック・リンクを作成する
シンボリックリンクが設定されているか確認
ln -la ~/hoge/
lrwxr-xr-x 1 hoge hoge [シンボリックリンクを置くフォルダのパス]@ -> [シンボリックリンクを作成したいファイルのパス]
[シンボリックリンクを置くフォルダのパス]@ -> [シンボリックリンクを作成したいファイルのパス] となればok。
シンボリックリンクにはファイル名に"@"が付加される。
シンボリックリンクを変更する
ln -nfs [シンボリックリンクを作成したいファイルのパス] [シンボリックリンクを置くフォルダのパス]
-n # ディレクトリとリンクを置き換える
-f # リンク先に同名のリンク・ファイルがあるときも警告なく上書きする
-s # シンボリック・リンクを作成する
シンボリックリンクを削除
unlink [シンボリックリンクを置くフォルダのパス]
サンプル
今回は、Dropboxを使ってSublime Text3の設定ファイルにシンボリックリンクを設定していきたいと思います。
PCが壊れたり、移行した際に、設定が楽になります。
- 実体のファイルをDropboxに移動する
- 元あった場所に移動先へのシンボリックリンクを作る
Dropbox内にフォルダを作成
mkdir ~/Dropbox/Sublime\ Text\ 3
sublime text3の設定ファイルをDropboxにコピー
~/Library/Application Support/Sublime Text 3/ # 任意のフォルダの場所へ移動
下記の設定ファイルを先ほどDropboxに作成したフォルダへコピー。
/Users/[ユーザー名]/Library/Application Support/Sublime Text 3/Packages
/Users/[ユーザー名]/Library/Application Support/Sublime Text 3/Installed Packages
元ファイルはフォルダ名を変更し、バックアップ用に保存。
※同じ名前があるとシンボリックリンクが設定されなかったので注意。
/Users/[ユーザー名]/Library/Application Support/Sublime Text 3/Packages(yyyymmdd_backup)
/Users/[ユーザー名]/Library/Application Support/Sublime Text 3/Installed Packages(yyyymmdd_backup)
シンボリックリンクを設定する
以下ターミナルで次のコマンドを実行する。
それぞれのフォルダの間に、半角スペースを忘れずに入れる。
Packagesフォルダにシンボリックリンクを設定する
ln -s /Users/[ユーザー名]/Dropbox/Sublime\ Text\ 3/Packages /Users/[ユーザー名]/Library/Application\ Support/Sublime\ Text\ 3/Packages
Install Packagesフォルダにシンボリックリンクを設定する
ln -s /Users/[ユーザー名]/Dropbox/Sublime\ Text\ 3/Install\ Packages /Users/[ユーザー名]/Library/Application\ Support/Sublime\ Text\ 3/Install\ Packages
半角スペースの前にバックスラッシュ[ \ ]を入れる。
指定のフォルダをターミナルへドラッグ・アンド・ドロップするとパス入力されるので、間違いがなくなる。
シンボリックリンクを作成されているか確認
シンボリックアイコンが付いていることが確認できれば、設定は完了。
~/Library/Application Support/Sublime Text 3/ # 任意のフォルダの場所へ移動
コマンドで確認の場合は、こちら。
ln -la ~/hoge/
lrwxr-xr-x 1 hoge hoge [シンボリックリンクを置くフォルダのパス]@ -> [シンボリックリンクを作成したいファイルのパス]