シンボリックリンクとハードリンク

シンボリックリンク

シンボリックリンクは、ファイルシステム内の別のファイルやディレクトリへのポインタを提供する特殊なファイルです。Windowsのショートカットのようなものです。

特徴

特徴説明
パスを記憶シンボリックリンクは、リンク先のファイルやディレクトリの場所(パス)を記憶します。
デッドリンクリンク先のファイルやディレクトリが削除されたり移動されたりすると、シンボリックリンクは壊れたリンク(デッドリンク)になります。
異なるファイルシステムリンク先のファイルやディレクトリが異なるファイルシステムに存在していてもシンボリックリンクを作成できます。

作成方法

シンボリックリンクの作成にはlnコマンドを使用します。

ln [オプション]… [-T] ターゲット リンク名

オプション説明
–backup[=CONTROL]既存の宛先ファイルのバックアップを作成
-b–backup と同様だが引数を受け付けない
-d, -F, –directoryスーパーユーザーがディレクトリにハードリンクを試みることを許可(システム制限のため失敗する可能性あり)
-f, –force既存の宛先ファイルを削除
-i, –interactive宛先を削除するかどうかを確認
-L, –logicalシンボリックリンクのターゲットを参照
-n, –no-dereferenceリンク名がディレクトリへのシンボリックリンクである場合、通常のファイルとして扱う
-P, –physicalシンボリックリンクに直接ハードリンクを作成
-s, –symbolicシンボリックリンクを作成
-v, –verbose各リンクされたファイルの名前を表示

シンボリックリンク test-file-link を作成

テスト用のファイルとディレクトリを作成します

# 作業用ディレクトリの作成
mkdir ~/work && \

# カレントディレクトリの移動
cd ~/work && \

# テスト用のディレクトリ作成
mkdir link-test && \

# テスト用のファイル作成
echo test-file1 > link-test/test-file

シンボリックリンクを作成

ln -s link-test/test-file test-file-link

シンボリックリンクが作成されたことを確認

ll

ハードリンク

特徴

  • ハードリンクは、同じファイルシステム内の既存のファイルに対する別の参照を提供します。ハードリンクは、リンク元のファイルのデータブロックを共有します。
  • ハードリンクは、ファイルが削除されても他のリンクからアクセス可能である限りデータを保持します。
  • ハードリンクは、同じファイルシステム内でのみ作成可能です。

作成方法

ハードリンクは、ln コマンドを使用して作成します。

test-fileのハードリンクtest-file-hardlinkの作成

テスト用のファイルを作成

# 作業用ディレクトリの作成
mkdir ~/work && \

# カレントディレクトリの移動
cd ~/work && \

# テスト用のディレクトリ作成
mkdir link-test && \

# テスト用のファイル作成
echo test-file1 > link-test/test-file

test-fileのハードリンクであるtest-file-hardlinkの作成

ln link-test/test-file test-file-hardlink

test-file-hardlinkが作成されたことを確認

ls -li

test-fileのiノードを確認。test-file-hardlinkと同じ番号であればOK

ls -li link-test/

コメント

タイトルとURLをコピーしました