utte

ln ハードリンクやシンボリックリンクを作る

ln [オプション] リンク元 [リンク名]

試してみる

主なオプション

-sハードリンクではなく、シンボリックリンクを作る
-f同じ名前のファイルがあっても、削除して作る
-v作成したリンクを表示する
-i同名のファイルがあるとき、確認する

解説

ハードリンクとシンボリックリンク

ファイルの実体は inode という番号で管理され、ファイル名はその inode への参照です。ハードリンクは、同じ inode に別の名前を付けるものです。元の名前を消しても、ほかの名前が残っていれば実体は消えません。

シンボリックリンクは、リンク先のパスを書いた別のファイルです。Windows のショートカットに近い働きです。リンク先を消すと、リンク切れになります。

違いのまとめ

項目 ハードリンク シンボリックリンク
inode 元と同じ 別
ディレクトリへのリンク 作れない 作れる
別のファイルシステムへのリンク 作れない 作れる
元を削除した後 読める リンク切れ

書式の注意

シンボリックリンクの ln -s リンク先 リンク名 の「リンク先」は、そのまま文字列として記録されます。相対パスで書くと、リンクがあるディレクトリを起点に解釈されます。作業ディレクトリからのパスではない点に気をつけましょう。

リンクの数

ls -l の2列目の数字は、そのファイルのハードリンクの数です。ハードリンクを作ると増え、削除すると減ります。0になると実体が消えます。

このコマンドを使う問題

  1. ln -sでシンボリックリンクを作成する
  2. ln でハードリンクを作成する

関連するコマンド

LinuC 101の出題範囲