ホーム > ファイル・ディレクトリ管理 > link

link: ファイルにハードリンクを作成

`link`コマンドは、既存のファイルに対するハードリンクを作成するために使用されます。ハードリンクは元のファイルと同じinodeを共有し、ファイルシステム内で同じデータを指す別名として機能します。元のファイルが削除されても、ハードリンクが残っていればデータは維持されます。

概要

`link`コマンドは、指定された2つのファイルパスを使用してハードリンクを作成します。最初の引数は既存のファイルのパス、2番目の引数は新しく作成されるハードリンクのパスです。このコマンドは`ln`コマンドのハードリンク作成機能に似ていますが、追加のオプションなしでハードリンク作成機能のみを提供します。

主な特徴

  • 既存のファイルに対するハードリンクの作成
  • 元のファイルと同じinodeの共有
  • 同じファイルシステム内でのみ機能
  • ディレクトリへのハードリンク作成不可

使用例

以下は`link`コマンドの使用例です。

基本的なハードリンクの作成

echo "Hello, World!" > original.txt
link original.txt hardlink.txt
ls -li original.txt hardlink.txt

`original.txt`ファイルに対する`hardlink.txt`という名前のハードリンクを作成します。

元のファイルを削除した後のリンク確認

echo "This is a test." > file_to_link.txt
link file_to_link.txt linked_file.txt
rm file_to_link.txt
cat linked_file.txt

元のファイルを削除しても、ハードリンクを通じてデータにアクセスできることを示します。

ヒントと注意点

`link`コマンドを使用する際の役立つヒントと注意すべき点です。

ハードリンクの理解

  • inodeの共有: ハードリンクは元のファイルと同じinode番号を持ちます。これは、2つの名前が同じ実際のデータを指していることを意味します。ファイルシステムはinodeの参照カウント(リンクカウント)を追跡し、このカウントが0になるまで実際のデータは削除されません。
  • ファイルシステムの境界: ハードリンクは同じファイルシステム内でのみ作成できます。別のパーティションやマウントされたディスク上のファイルにはハードリンクを作成できません。この場合、シンボリックリンク(symlink)を使用する必要があります。
  • ディレクトリへのリンク不可: `link`コマンドはディレクトリに対するハードリンクを作成できません。ディレクトリのハードリンクはファイルシステムの整合性を損なう可能性があるため、一般的に許可されていません。

`link`と`ln`の違い

  • 機能: `link`コマンドはハードリンクのみを作成します。一方、`ln`コマンドは`-s`オプションでシンボリックリンクを作成でき、`-f`(強制上書き)、`-v`(詳細表示)などの追加オプションを提供します。
  • 使いやすさ: ほとんどの場合、`ln`コマンドの方が柔軟で使いやすいため広く使用されています。`link`は`ln`のハードリンク作成機能のみを提供する、より基本的なユーティリティです。

同じカテゴリのコマンド