Linuxのコマンド操作を覚よう ④ハードリンクとシンボリックリンクの作成(初心者向け)

今回はUbuntu(Linux)でのハードリンクとシンボリックリンクと作り方について書きます。

ハードリンクとはVFS(バーチャルファイルシステム)で同じiノード番号で管理されたリンクのことで、シンボリックリンクとはiノードを持たない(=関連付けされていない)リンクです※Windowsのショートカットのようなものです

ごめんなさい・・・誰でも分かるように書きたいのですが・・・分かり難いですよね

例えばターミナルで説明すると、iノード番号416750 の「a.txt」が確認できます(下記画像)

新しくテキストファイルを作成した場合、違ったiノード番号が割り当てられていることが確認出来ます(基本的にファイルはiノードに関連付けされます)

ハードリンクで作成されたファイルは同じiノード番号で管理されますのでデータの参照元は同じです。なので仮に間違って「a.txt」を削除してしまっても「aa.txt」からデータを読み込めますし、逆に「aa.txt」を削除しても「a.txt」からファイルを読み込むことが出来ます。

なので仮に名前を変更してもアクセス先は同じなので影響しませんし、元のファイルと同じものとして扱えます。

これがハードリンクです。

次にシンボリックリンクの説明&作成の仕方を書きます(作成コマンド ln -s)。

下記の画像では「a.txt」に対して「b.txt」というシンボリックリンクを作成しています。当然、iノード番号が割り当てられていますが参照元である「a.txt」を削除すると使えなくなります(b.txt > a.txt)。

仮にシンボリックリンクを削除しても、アクセス元(データ、またはリンク先)の保存データには影響を及ぼさないのがシンボリックリンクです。

以上です。

スポンサーリンク