5.9. リンクの作成 【ln】

$ 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 になっています。これは、ハードリンクの参照数を表しています。