【ln】について調べてみました。(シンボリックリンクと、ハードリンク)

UNIXコマンド[ln]を引用。

ln (option) [file / directory name] [linkfile / linkdirectory name]

オプション

オプション 機能
-s シンボリックリンクを作成する
-f 同一名のファイルがあっても問い合わせなしに上書きする
-i 同一名のファイルがあった場合に問い合わせをする
-b 同一名のファイルがあった場合にバックアップ後に問い合わせなしに上書きする
-n 同一名のファイルがあった場合に処理を中止する。
-v 処理内容を出力する

コマンド例

ln file1 link1 link1というリンクファイル(ハードリンク)を作成する
ln -s file* /home/dir1 file*の条件に合うファイルのリンクファイル(シンボリックリンク)を/home/dir1に作成する

関連コマンド

cp mkdir

シンボリックリンク:IT用語辞典 e-Wordsを引用。

 

あるファイルやディレクトリに別の名前を与え、ユーザやアプリケーションがその名前をファイル本体と同様に扱えるようにする仕組み。UNIX系OSのファイルシステムの機能として定着している。

UNIXでは「ln」コマンドでシンボリックリンクを作成することができ、ファイルシステム上にはリンク情報が格納された0バイトのファイルが出現する。元のファイルを扱うのと同じ感覚でシンボリックリンクと通してファイルやディレクトリにアクセスすることができる。

似た機能に「ハードリンク」がある。シンボリックリンクはデバイスやファイルシステムにまたがって自由にリンクを張ることができるが、ハードリンクではファイルシステムを管理するファイルエントリに複数の名前を登録するため、異なるファイルシステムへリンクできないなどの制限がある。ハードリンクでは実体ファイルの削除ができるが、シンボリックリンクを通じて実体を削除することはできない。

ファイルやディレクトリに仮想的な別の名前を与えるという点ではWindowsの「ショートカット」やMac OSの「エイリアス」に近いが、これらはリンク先のファイルを実体と同じようには扱えないため、実装や機能の面では大きく異なる。

 


 

 

ハードリンク:IT用語辞典 e-Wordsを引用。

 

あるファイルやディレクトリを別のパスで参照できるようにする仕組み。UNIX系OSのファイルシステムの機能として定着している。

UNIX系OSのファイルシステムでは、データ本体を格納する領域とは別に、それぞれのファイルやディレクトリについて「Iノード」というデータが作成される。Iノードにはサイズや作成日などファイルについての情報が格納されており、データ領域のどの位置にそのファイルが収められているかを表すポインタ情報も記録されている。同じファイル実体を指す複数のIノードを作成し、それぞれ別のパスを設定する機能がハードリンクである。

ファイルやディレクトリの中には、複数のパスで参照できると便利なものがあるが、ハードリンクを使えばそれ自体を複製することなく別のパスを設定することができ、ディスクの有効利用や管理の手間の軽減(コピーが複数あるとバージョンの管理などが面倒なため)につながる。

似た機能に「シンボリックリンク」がある。ハードリンクはデバイスやファイルシステムにまたがってリンクを作ることはできないが、シンボリックリンクはどこにでもリンクを作ることができる。ハードリンクでは実体ファイルの削除ができるが、シンボリックリンクを通じて実体を削除することはできない。