$ ln [オプション] リンク元 リンク先 |
リンクを作成するには、ln コマンドを使用します。
代表的なオプションを以下に示します。
表 5-7. ln コマンドのオプション
| -d | ディレクトリのハードリンクを作成します。スーパーユーザーのみ操作可能です。 |
| -f | 同じ名前のリンクファイルが存在する場合、強制的に上書きします。 |
| -s | シンボリックリンクを作成します。 |
オプションの指定がされていないときは、ハードリンクを作成します。
リンクには、ハードリンクとシンボリックリンクの 2つの種類が存在します。シンボリックリンクとは、実体は別なところに存在するファイルを参照するファイルで、実体へのパスを記録しているにすぎません。これに対して、ハードリンクはシンボリックリンクのように、実体と参照といった違いはなく、どちらのファイルも同じディスク領域(i-node)を共有する普通のファイルのような扱いになります。ハードリンクはファイルシステムをまたいで作成することができないなどの制限があることから、一般的にリンクを作成する場合にはシンボリックリンクが使用されています。
例えば、/home/turbo/sample/sample.txt へのシンボリックリンクである /home/turbo/sample_slink.txt を作成するには、次のコマンドを実行します。パスの指定には、相対パスを指定することもできます。
$ ln -s /home/turbo/sample/sample.txt /home/turbo/sample_slink.txt |
シンボリックリンクが作成されたことを確認するには ls -l コマンドを使用します。
ls -l 合計 4 drwxr-xr-x 2 turbo turbo 4096 2月 22 13:59 sample/ lrwxrwxrwx 1 turbo turbo 29 2月 22 14:01 sample_slink.txt -> /home/turbo/sample/sample.txt |
ファイルの種類がシンボリックリンクを表す l であることや作成したシンボリックリンクの後に実体へのパスが表示されていることで確認することができます。
次に、/home/turbo/sample/sample.txt へのハードリンクである /home/turbo/sample_hlink.txt を作成します。
$ ln /home/turbo/sample/sample.txt /home/turbo/sample_hlink.txt |
作成したハードリンクを確認します。
$ ls -l 合計 8 drwxr-xr-x 2 turbo turbo 4096 2月 22 13:59 sample/ -rw-r--r-- 2 turbo turbo 69 2月 22 13:59 sample_hlink.txt lrwxrwxrwx 1 turbo turbo 29 2月 22 14:01 sample_slink.txt -> /home/turbo/sample/sample.txt |
シンボリックリンクと違い、一見すると普通のファイルと同様に見えますが、2番目のフィールドの数字が 2 になっています。これは、ハードリンクの参照数を表しています。