MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


Linuxのリンク機能
profile-img
投稿者: nodaさん
投稿日:2021/09/24 16:16
更新日:
like-img
分類
技術
テクノロジー
Unix系サーバ
キャリア
運用・保守
投稿内容

 Linuxではファイルやディレクトリにアクセスできるファイルを作成するリンク機能が使えます。Linuxのリンク機能にはハードリンクとシンボリックリンクの2種類があります。


ハードリンク

 通常、Linuxでファイルを保存すると固有のiノード番号が割り当てられます。iノードには、ファイルのサイズやアクセス権、所有者、ディスク上の物理的なデータ保存場所など、様々な情報が格納されています。このiノードが同じになる別のファイルを作成することで、複数のファイルから同じファイルにアクセスできるのがハードリンクです。

 ハードリンクでは、元のファイルもハードリンクとして作成したファイルもiノードが同じため区別がつきません。そのため、どちらかを削除してもすべて削除しない限りはファイルの内容は消えません。

 iノードがファイルシステムごとに管理されているため、リンク元と違うファイルシステムにハードリンクを作成することはできません。また、ディレクトリのハードリンクも作成することはできません。


シンボリックリンク

 リンク元のファイルへのポインタを持つことで、リンク元ファイルの場所を指し示すのがシンボリックリンクです。シンボリックリンクを残してリンク元のファイルを削除することができ、この状態でシンボリックリンクにアクセスした場合、ファイルが見つけられずエラーを出します。

 シンボリックリンクでは、リンク元とは違うファイルシステムでもリンクを作成することができます。またディレクトリのシンボリックリンクも作成することができます。


lnコマンド

 リンクの作成にはlnコマンドを使います。「ln [オプション] リンク元ファイル リンクファイル名」のように記述します。-sオプションを使うとシンボリックリンク、オプションなしだとハードインクが作成されます。

 上の例では、test.txtのハードリンクとシンボリックリンクを作成しています。lsコマンドでリンク元ファイルと作成した2つのリンクを見ると、一番左に表示されているiノード番号がリンク元ファイルとハードリンクは同じになっていますがシンボリックリンクのみ異なっていることがわかります。

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3