Thursday Feb 03, 2022

ハードリンクとソフトリンクの違い

Unixにおけるリンクとは、基本的にファイルやディレクトリに関連付けるポインタのことです。 ハードリンクとソフトリンクの大きな違いは、ハードリンクがファイルへの直接参照であるのに対し、ソフトリンクはファイル名による参照、つまりファイル名によってファイルを指し示すことです。

ハードリンクは同じファイルシステム内のファイルおよびディレクトリをリンクしますが、ソフトリンクはファイルシステムの境界を横断することができます。

リンクを理解する前に、まず inode を理解する必要があります。inode は、ファイルの作成日、ファイルの権限、ファイルの所有者などのファイルに関するメタデータで構成されるデータ構造です。 ハードリンク対ソフトリンク

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠 ハードリンク ソフトリンク
基本 ファイルはハードリンクとして知られている多くの異なる名前でアクセスすることができます。 ファイルは、そのファイルを指すさまざまな参照を通じてアクセスすることができ、ソフト リンクとして知られています。
リンク検証では、元のファイルが削除されても 有効で、ファイルにアクセスすることが可能です。 無効
作成に使用したコマンド ln ln -。s
ノード番号 同じ 異なる
自身のパーティションにリンク可能 です。 ネットワーク上の他のファイル・システムにもリンク可能。
メモリ消費量 Less More
相対パス 適用不可 許容範囲

ハードリンクの定義

ハードリンクは、同じファイルシステム内の2つのファイルを直接リンクし、識別にはファイルのinode番号を使用します。 ハード・リンクはディレクトリには実装できない(inodeを指すから)。 lnコマンドを使用してハードリンクを生成すると、コマンドライン上に別のファイルが作成され、元のファイルを参照することができます。

元のファイルを削除しても、ハードリンクされたファイルには影響がなく、ハードリンクされたファイルは残ります。 inodeはカウンタを保持しており、自分自身へのハードリンクの数を計算します。 カウンタが0になると、inodeは空になります。

ソフトリンクの定義

ソフトリンクは通常、元のファイルの代替パス (またはエイリアス) であり、これらはシンボリック リンクとも呼ばれます。 これは、リンクの「ターゲット ファイル」の名前、それがソフト リンクであることを指定するフラグを含みます。 ファイルにアクセスすると、ソフトリンクのサブジェクトに記述されたパスを通してターゲット ファイルにリダイレクトします。

これらは、ソフトリンクがショートカットのように動作する Windows OS の場合、非常に便利です。 ソフトリンクの作成と削除は、元のファイルに影響を与えません。 対象ファイルが削除された場合、ソフトリンクはぶら下がり、どこにもポイントせず、対象ファイルにアクセスしたときにエラーメッセージを生成します。 ソフトリンクは、ハードリンクと異なり、inode番号を使用しません。

Key Differences Between Hard link and Soft link

  1. ハードリンクは、元のファイルの追加名であり、ターゲットファイルにアクセスするために inode を参照します。
  2. 元のファイルが削除されると、ソフトリンクは無効になりますが、ハードリンクはターゲットファイルが削除されても有効です。
  3. ハードリンクはソフトリンクと異なり、同じ inode 番号を持ち、対象ファイルとソフトリンクは異なる inode 番号を持つ。
  4. ハードリンクはそのパーティションに限定されるが、ソフトリンクは異なるファイルシステムをカバーできる。

Conclusion

ハードリンクは余分なスペースを必要とせず、マットも速く解決しますが、ハードリンクに適用した変更は元のファイルにも反映されます。 一方、ソフトリンクは余分なスペースを必要としますが、ソフトリンクのいかなる変更も元のファイルに影響を与えません。 ソフトリンクは、ハードリンクと異なり、ディレクトリへのリンクが可能です。

コメントを残す

メールアドレスが公開されることはありません。

Back to Top