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