ファイルへのリンクを作成する(ln)

スポンサーリンク

環境

CentOS7.6(64bit)

概要

ファイルへのリンクを作成します。
リンクには、「ハードリンク」と「シンボリックリンク」の2種類があります。

ハードリンクは、1つのファイルに別名を持たせることができます。ハードリンクはi ノード番号を共有することで実現しているので、別ファイルシステム(別パーティション)には作成することができません。また、ハードリンクを削除しても、元ファイルは削除されません。

シンボリックリンクは、元ファイルが保存されているパスを示す擬似的なファイルを作ります。Windowsでのショートカットに似ています。シンボリックリンクは、別ファイルシステムの間で作成することができ、削除しても元ファイルに影響はありません。ただし、元ファイルを消すとシンボリックリンクからのアクセスがエラーとなります。

書式

ln [オプション] リンク元ファイル名 リンク先ファイル名
ln [オプション] リンク元ファイル名 ディレクトリ名

オプション

-f
すでにリンクがあった場合は削除します。

-b
リンク作成にファイルの削除が必要な場合はバックアップを作成します。

-s
シンボリックリンクを作成します。

サンプル

例1

ハードリンクを作成します。
$ ll
合計 4
-rw-rw-r-- 1 user1 user1 1555 10月 14 13:56 test.txt
$ ln test.txt test.hlnk
$ ll
合計 8
-rw-rw-r-- 2 user1 user1 1555 10月 14 13:56 test.hlnk
-rw-rw-r-- 2 user1 user1 1555 10月 14 13:56 test.txt
リンクカウントが1ではないので、リンクされていることがわかります。

例2

シンボリックリンクを作成します。
$ ll
合計 4
-rw-rw-r-- 1 user1 user1 809 10月 14 13:59 test.txt
$ ln -s test.txt test.slnk
$ ll
合計 4
lrwxrwxrwx 1 user1 user1 8 10月 14 14:01 test.slnk -> test.txt
-rw-rw-r-- 1 user1 user1 809 10月 14 13:59 test.txt
test.txtのシンボリックリンク(test.slnk)が作成されます。