リンクについて
概要
ファイルの実体にファイル名をつなぐことをリンクといい、シンボリックリンクとハードリンクの2種類がある。
シンボリックリンク
windowsのショートカット、Macだとエイリアスと同じ。
ファイルやディレクトリを別の場所から参照するために、別名をつけてリンクとして別の場所に作成するためにシンボリックリンクを作成する。
ハードリンク
linuxでは全てのファイルはinodeと呼ばれるファイルシステム上で一意のデータを参照する。
inodeとはファイルやディレクトリの所有者や更新日時、ファイルサイズなどの属性情報が書かれているデータ。
ディスク上でデータに対して一意なinodeが存在し、それに対して必ず1つのハードリンクが存在する。
なので、ファイル、ディレクトリが作成された時に少なくとも1つのinodeとハードリンクでつながる。
別途ハードリンクを作成する場合、一つのデータに複数のハードリンクで参照するファイルやディレクトリが存在する。
ハードリンクはinodeを参照する。
シンボリックリンクとハードリンクの違い
シンボリックリンクは元データが削除・移動されるとシンボリックリンクが無効になる。ディレクトリに対しても作成可能。
ハードリンクは元データが削除・移動されても参照先がinodeなのでハードリンクの参照が消えるわけではない。
lnコマンド
ln -s [ファイル名] [リンク名]
シンボリックリンクの作成。
元データが削除されると、参照できない。
ln [ファイル名] [リンク名]
ハードリンクの作成。
ln -liコマンド実行時、先頭にあるのがinode番号。
同じになっていることが確認できる。
元データを削除した場合でも、作成したハードリンクを参照できる。
まとめ
リンクの作成方法と違いについて、記載しました。
使用用途についてはわからないので、これから理解していきたいです。