lnコマンド
ハードリンクおよびシンボリックリンクを作成する。
| オプション | 内容 |
|---|---|
| -s | シンボリックリンクを作成する。オプションなしの場合ハードリンクを作成する。 |
ハードリンク:
ファイルの実体(ディスク上に保存されているデータ)が1つでもその実態を参照するリンクがあれば、それぞれのファイル名で同一の実体を参照することができる。
どのハードリンクに変更を加えても、同一のファイルの実体に対して変更を加えることになる。
どのハードリンクファイルも同じiノード番号で管理され、ハードリンクファイルが全て削除されると、iノード番号を参照するものがなくなりファイルの実体も削除される。
ただし、別のファイルシステムにハードリンクを作成することはできない。iノード番号はファイルシステムごとに管理されているため。

$ ln /path/to/originalファイル /path/to/originalへのリンク(リンク名)
ハードリンクを作成し、iノード番号を確認してみると以下の通りになる。sample.txtに対し、ハードリンクを2つ作成したものになる。
ここでsample.txtを削除してもsample_hardlinkまたはsample_hardlink2で内容を編集することができる。
$ ls -li
total 12
27528009 -rw-r--r-- 3 webserver webserver 17 May 5 05:36 sample.txt
27528009 -rw-r--r-- 3 webserver webserver 17 May 5 05:36 sample_hardlink
27528009 -rw-r--r-- 3 webserver webserver 17 May 5 05:36 sample_hardlink2
シンボリックリンク:
ファイルのパスに関する情報を格納しているリンクファイルで、参照先のファイルが消失すると機能しなくなる。
シンボリックリンクファイルのiノード番号はリンク先(ファイルの実体)のiノード番号とは異なり、1つのファイルとして独立している。
異なるファイルシステムへリンクを作成することも可能。

$ ln -s /path/to/originalファイル /path/to/originalへのリンク(リンク名)
sample.txtに対しシンボリックリンクを作成し、iノード番号を確認してみると以下の通りになる。
ここでsample.txtの名前を変更したり、どこか別のディレクトリへ移動したり、削除するとシンボリックリンクは機能しなくなる。
$ ls -li
total 12
27528009 -rw-r--r-- 3 webserver webserver 17 May 5 05:36 sample.txt
27528009 -rw-r--r-- 3 webserver webserver 17 May 5 05:36 sample_hardlink
27528009 -rw-r--r-- 3 webserver webserver 17 May 5 05:36 sample_hardlink2
27528006 lrwxrwxrwx 1 webserver webserver 10 May 5 05:43 sample_symblink -> sample.txt
27528011 lrwxrwxrwx 1 webserver webserver 15 May 5 05:43 sample_symblink2 -> sample_symblink