Linux
ln

シンボリックリンクの作成、更新、削除、権限変更をしました。

More than 1 year has passed since last update.

lnコマンドで作成するシンボリックリンクについて、毎度忘れてしまうのでメモしておきます。

シンボリックリンクを貼る

シンボリックリンクの貼り方です。

シンボリックリンクの貼り方
ln -s ファイルのパス リンクのパス

上記の様に実行すると、リンクのパスでファイルへの参照ができるようになります。

Macに置いてあるファイルで確認してみました。

piyoファイルにhogeというシンボリックリンクを貼る
ln -s ~/Downloads/piyo ~/Desktop/hoge

確認します。

シンボリックリンクの確認
ls -al ~/Desktop/hoge
lrwxr-xr-x  1 pugiemonn  staff  41  5 25 10:54 /Users/pugiemonn/Desktop/hoge -> /Users/pugiemonn/Downloads/piyo

ここでhogeというファイル開くとpiyoファイルになっていました。

もう一点、以下はhttpdでconfファイルへシンボリックリンクを張った例です。

confファイルへシンボリックリンクを貼る
sudo ln -s /etc/httpd/sites-available/dev.example.com.conf /etc/httpd/sites-enabled/

このように実行した後に、/etc/httpd/sites-enabled/dev.example.com.confにはシンボリックリンクが貼られています。

上記は都合によりsudoがついてます。

ディレクトリのシンボリックリンクを変更する

ディレクトリのシンボリックリンクを変更する場合です。

ディレクトリへシンボリックリンクを貼る
ln -nfs ディレクトリのパス シンボリックリンクを貼るディレクトリのパス

以下はcurrentディレクトリに貼られていたシンボリックリンクを貼り替えた例です。

currentディレクトリへシンボリックリンクを貼る
ln -nfs /var/www/pugiemonn.com/releases/20150510043839 current

currentディレクトリに貼られていたシンボリックリンクを貼りかえました。

よくrmコマンドでシンボリックリンクを削除していたのですが、削除したくなかったので上記を使用しました。

シンボリックリンクを削除する

lnで作成したシンボリックリンクを削除する場合はunlinkを使用します。

シンボリックリンクを削除
unlink /etc/httpd/sites-enabled/dev.example.com.conf

シンボリックリンクをrmで消すのはよく見ますが、unlinkのほうが良い気がします。

シンボリックリンクのPermissionを変更

chownコマンドに-hオプションを付けます。

シンボリックリンクの権限を変更
chown -h pugi:pugi /etc/httpd/sites-enabled/dev.example.com.conf

参考

http://qiita.com/takeoverjp/items/bb1576e90a8a495db4b3
http://qiita.com/pugiemonn/items/9e1bccf3344b74cea832