Ln (UNIX)

lnコマンドの詳細解説



lnコマンドは、Unix系オペレーティングシステムにおいて、ファイルやディレクトリに対するリンクを作成するために使用される基本的なコマンドです。このコマンドは、POSIX(Portable Operating System Interface)およびSingle UNIX Specificationで標準化されており、幅広いシステムで共通の動作が期待できます。lnは「link」の略であり、その名の通り、ファイルシステムにおける異なる場所から同じデータにアクセスするための入り口(リンク)を生成します。

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



lnコマンドには、主に二種類のリンクを作成する機能があります。

1. ハードリンク
デフォルトで作成されるリンク形式です。
ハードリンクは、ファイルの実体データ(inode)を直接参照します。
複数のハードリンクは、同じデータにアクセスする異なる名前となります。
元のファイル(inode)を削除しても、他のハードリンクが残っていればデータにアクセス可能です。
異なるファイルシステム間には作成できません。
ディレクトリへのハードリンクは、通常、作成できません。

2. シンボリックリンク (ソフトリンク)
`-s` オプションを指定することで作成されるリンク形式です。
シンボリックリンクは、ターゲットファイルのパス名を文字列として保存します。
シンボリックリンクは、ターゲットファイルへの参照(ポインタ)であり、ターゲットファイルが削除または移動されるとリンクが切れます。
異なるファイルシステム間にも作成できます。
ディレクトリへのシンボリックリンクも作成できます。

lnコマンドの構文



lnコマンドは、以下のような構文で使用されます。

bash
ln [OPTION]... [-T] TARGET LINK_NAME
ln [OPTION]... TARGET
ln [OPTION]... TARGET... DIRECTORY
ln [OPTION]... -t DIRECTORY TARGET...


`TARGET`: リンクの対象となるファイルまたはディレクトリ。
`LINK_NAME`: 作成するリンクの名前。`TARGET`が複数の場合、最後の引数はディレクトリ名である必要があります。
`DIRECTORY`: リンクを格納するディレクトリ。`-t`オプションを使用した場合に指定。

主なオプション



lnコマンドには、リンクの動作を制御するための様々なオプションがあります。

`-s` / `--symbolic`: シンボリックリンクを作成します。
`-f` / `--force`: 上書きの確認をせず、強制的にリンクを作成または削除します。既存のリンクを上書きする際に便利です。
`-i` / `--interactive`: 上書き時に確認を求めます。誤操作を防ぐために利用します。
`-L` / `--logical`: シンボリックリンクを辿ってリンクを生成します。シンボリックリンクのリンク先に対してハードリンクを作成する場合に使用。
`-P` / `--physical`: シンボリックリンクを辿らずにリンクを作成します。シンボリックリンクそのものにリンクを作成する場合に使用。
`-n` / `--no-dereference`: シンボリックリンクを辿らずにリンクを作成します(シンボリックリンクを辿らない点では`-P`と同じだが、`-L`オプションの挙動を上書きするために使われます。`-L`オプションと同時に使用すると`-L`オプションは無視されます。).

使用例



1. ハードリンクの作成

bash
ln file.txt hardlink.txt

`file.txt`へのハードリンク`hardlink.txt`を作成します。

2. シンボリックリンクの作成

bash
ln -s file.txt symlink.txt

`file.txt`へのシンボリックリンク`symlink.txt`を作成します。

3. ディレクトリへのシンボリックリンクの作成

bash
ln -s directory dir_symlink

`directory`へのシンボリックリンク`dir_symlink`を作成します。

4. 複数のファイルをディレクトリにリンクする
bash
ln file1.txt file2.txt dest_dir

`file1.txt`と`file2.txt`へのハードリンクを`dest_dir`ディレクトリに作成します

5. `-t` オプションで複数のファイルをディレクトリにリンクする
bash
ln -t dest_dir file1.txt file2.txt

`file1.txt`と`file2.txt`へのハードリンクを`dest_dir`ディレクトリに作成します


外部リンク



ln(1) - Linux JM Project
ln(1) - OpenBSD(英語)
ln(1) - HMUGリファレンスマニュアル(英語)
ln(1) - Debianリファレンスマニュアル(日本語)

lnコマンドは、ファイルシステムの操作において重要な役割を果たします。ハードリンクとシンボリックリンクを理解し、状況に応じて適切に使い分けることで、より柔軟で効率的なファイル管理が可能になります。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。