【Linux】lnコマンドでファイルのリンクを作成してみよう

Linuxでファイルのリンクを作成する方法が知りたい
lnコマンドでハードリンクやシンボリックリンクの作成方法について知りたい
lnコマンドの便利な使い方について知りたい

Linuxにはファイルやディレクトリのリンクを作成するときに便利な「ln」コマンドが用意されています。リンクを作成することで、別の場所から元の位置に格納されたファイルにアクセスすることができます。

ここではファイルにリンクを作成する「ln」コマンドについて、以下の内容で解説していきます。

  • そもそもlnコマンドとは
  • lnコマンドの主なオプション
  • lnコマンドでファイルのリンクを作成する方法
  • lnコマンドでファイルのシンボリックリンクをする方法

この記事では「ln」コマンドについてわかりやすく解説してますので、ぜひ使い方を覚えておきましょう!

lnコマンドとは

「ln」コマンドはファイル・ディレクトリのリンクを作成するコマンドで、Linuxを使用するエンジニアにとって使用頻度が高いコマンドの1つと言えます。ファイルやディレクトリのリンクを作成することで、WindowsのショートカットやMacのエイリアスのように、異なる場所から異なる名称でファイルにアクセスすることが可能です。

「ln」コマンドでリンクを作成するには、以下のように記述します。

$ ln リンク元ファイル リンク後の名称

リンク元ファイルにはリンク対象のファイル名を指定します。

lnコマンドのオプション

以下に「ln」コマンドで使用する主なオプションを紹介します。

オプション名称
-fリンク名が存在する場合は既存のリンクを削除する
-iリンク名が存在する場合は既存リンクを削除するか確認を行う
-sシンボリックリンクを作成する
-bリンク名が存在する場合は既存のリンクのバックアップを作成する
-vリンク作成時にリンクの詳細情報を表示する

lnコマンドの使い方

ここでは「ln」コマンドの使い方について解説します。

ファイルのリンクを作成

ディレクトリ「test/sub」に存在するtest.txtのリンクを、ディレクトリ「test」からリンクtt.txtを作成するには以下のように実施します。

$ ln sub/test.txt tt.txt
$ ls

実行結果:
ln_image01

testディレクトリに「/sub/test.txt」のリンクであるtt.txtが作成されていることがわかりますね!tt.txtのリンクにアクセスすると、元ファイルであるtest.txtの内容が表示されます。

なお、元ファイルが存在しない場合は、「そのようなファイルやディレクトリはありません」のエラーが表示されます。

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

先程解説したオプションなしのコマンド実行ではハードリンクが作成され、オプションの「-s」を付けるとシンボリックリンクが作成されます。


ハードリンクの特徴

  • ディレクトリのリンクを作成することができない
  • 作成したリンクにアクセスしてファイルの編集が可能
  • リンク先ファイルを削除してもアクセスできる


シンボリックリンクの特徴

  • ディレクトリのリンクを作成することが可能
  • リンク先ファイルを削除するとアクセスできない
  • リンク元ファイルのアクセス権限が摘要される


シンボリックリンクの実例については後述します。

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

シンボリックリンクを作成するには「-s」オプションを使用します。

ディレクトリ「test/sub」に存在するtest.txtのリンクを、ディレクトリ「test」からシンボリックリンクttを作成するには以下のように実施します。

$ ln -s sub/test.txt tt
$ ls

実行結果:
ln_image02

testディレクトリに「/sub/test.txt」のシンボリックリンクであるttが作成されていることがわかりますね!「ls」コマンドで確認すると、シンボリックリンクttには「tt -> sub/test.txt」のようにリンク先が表示されます。

また、上述したように「-s」オプションではディレクトリのリンクも作成することが可能です。

上書き確認

既に作成されているリンクと同じ名称で登録を実行するとエラーが発生が発生しますが、「-i」オプションを使用することで、上書きの確認後に強制的に上書きされます。

$ ln -i sub/test.txt tt.txt
ln: `tt.txt' を置き換えますか(yes/no)? yes

実行結果:
ln_image03

既に同じリンク先名称が存在すると、このように「〜を置き換えますか(yes/no)?」のメッセージが表示されますので上書きする場合はyまたはyesを入力します。

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

実はなんとなくしか理解していない…
Linuxを効率よく学習する方法が知りたい

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!


【完全保存版】エンジニア監修!Linuxおすすめ入門書7選
更新日 : 2021年11月17日

Linux入門者に必要な知識をすべて解説!おすすめサイトや本もご紹介
更新日 : 2021年11月17日

まとめ

ここでは、Linuxでハードリンク・シンボリックリンクを作成する「ln」コマンドについて、

  • lnコマンドの使い方
  • ハードリンクとシンボリックリンクの違い
  • よく使われるオプション

などについて解説しました。

「ln」コマンドでハードリンクやオプション「-s」を使用してシンボリックリンクを作成するコマンドは、開発の現場でもよく使われるのでこの機会に使い方をよく理解しておきましょう。

もし「ln」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。

Writer

侍エンジニア編集部

株式会社SAMURAI

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close