【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入門者に必要な知識をすべて解説!おすすめサイトや本もご紹介
更新日:2024年3月29日

まとめ

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

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

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

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

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

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次