ln コマンドは、ファイルにリンクを作成するための基本的なコマンドです。リンクとは、ファイルシステム内のファイルへの参照を作成する方法で、ハードリンクとシンボリックリンク(ソフトリンク)の2種類があります。本章では、UNIX環境における ln コマンドの使用方法について解説します。GNU/Linux特有の拡張は扱わず、POSIX規格に準拠した内容に限定します。

基本的な使い方

編集

構文

編集
ln [オプション] ソース ターゲット
  • ソース: リンク元のファイル。
  • ターゲット: 作成するリンクの名前。
$ ln file1.txt link1.txt

file1.txt というファイルに対して、link1.txt というハードリンクを作成します。

主なオプション

編集

以下は、POSIX規格に準拠した主なオプションです。

-s: シンボリックリンクの作成

編集

シンボリックリンク(ソフトリンク)を作成します。ハードリンクとは異なり、シンボリックリンクはリンク先のファイルが削除されても壊れることがあります。

$ ln -s /path/to/file link_to_file

/path/to/file のシンボリックリンクを link_to_file として作成します。

-f: 既存ファイルの上書き

編集

ターゲットに既にファイルやリンクが存在する場合、強制的に上書きします。

$ ln -sf file1.txt link1.txt

link1.txt が既に存在する場合、強制的に上書きしてハードリンクを作成します。

-v: 詳細表示

編集

リンク作成時に詳細な情報を表示します。

$ ln -sv file1.txt link1.txt

リンク作成の詳細な処理内容が表示されます。

注意点

編集
  • ハードリンクとシンボリックリンクの違い
    • ハードリンクは、ファイルのデータに対する複数の参照を作成します。リンク元とリンク先は同一のデータを指し、どちらかを削除してもデータ自体は残ります。シンボリックリンクは、ファイルのパスへの参照を持つ別のファイルであり、リンク先のファイルが削除されるとリンクは無効になります。
  • ディレクトリのリンク作成
    • 通常、ln コマンドでディレクトリに対してリンクを作成することはできません。ディレクトリに対してリンクを作成するには、-s オプションを使用する必要があります。
  • リンクの上書き
    • 既にリンクが存在する場合、-f オプションを使用するとリンクを強制的に上書きできます。

例題

編集

例1: ハードリンクの作成

編集
$ ln file1.txt link1.txt
file1.txt のハードリンクを link1.txt として作成します。

例2: シンボリックリンクの作成

編集
$ ln -s /path/to/original /path/to/link
/path/to/original のシンボリックリンクを /path/to/link として作成します。

例3: 既存のリンクの強制上書き

編集
$ ln -sf file1.txt link1.txt
link1.txt が既に存在している場合でも、強制的に上書きしてハードリンクを作成します。

まとめ

編集

ln コマンドは、ファイルやディレクトリにリンクを作成するための重要なツールです。ハードリンクとシンボリックリンクの使い分けや、オプションを適切に使用することで、効率的にリンク管理ができます。本章で紹介した基本的なオプションを理解し、実際の操作に役立ててください。