シンボリックリンクを貼るのが苦手で、いつもなかなかうまく貼れずに苦戦するのでメモ。
シンボリックリンクを貼るコマンド
$ ln -s リンクしたい実際のdir そのdirを呼び出す際のリンク名
例えばこんな場合
ローカルでテストする時に、ローカル環境をサーバーと同じディレクトリ構成にしたい。
下記のようなディレクトリ構成だったとして、
/var/project/conf
で/Users/tamorieeeen/test/project/conf
を呼び出したい場合。
$ pwd
/Users/tamorieeeen/test
$ tree
.
└── project
├── conf
│ ├── local_conf.xml
│ └── test.xml
├── sql
│ └── test
│ └── test.sql
└── tmp
絶対パスで貼る場合
絶対パスで指定する場合は、どこでコマンドを実行しても一緒なのでどこにいてもOK。
$ ln -s /Users/tamorieeeen/test/project /var/project
相対パスで貼る場合
シンボリックリンクを貼りたいディレクトリに移動してからコマンドを実行。
今回の場合/var
にproject
という名称でシンボリックリンクを貼りたいので/var
に移動。
$ cd /var
$ ln -s /Users/tamorieeeen/test/project project
確認方法
シンボリックリンクを貼ったディレクトリをls -l
して、権限の頭にl
がついてればシンボリックリンクが貼れてることがわかる。
$ ls -l /var/project
lrwxr-xr-x /var/project -> /Users/tamorieeeen/test/project
シンボリックリンクを削除する方法
どちらでもOKですが、個人的にはrm
は緊張するのでunlink
の方が好きです。
$ unlink /var/project
$ rm /var/project
ちなみにディレクトリを削除する場合はrm -r
ですが、シンボリックリンクを削除する場合は-r
は不要です。
シンボリックリンクを変更する方法
変更する場合は-f
の上書きオプションをつける。
ここで注意なのは、ディレクトリのシンボリックリンクの場合は-n
オプションも必要なこと。
$ ln -nfs /Users/tamorieeeen/test_2/project /var/project
参考
lnコマンドのオプション詳細は下記参照
【 ln 】コマンド――ファイルのハードリンクとシンボリックリンクを作る