【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選
更新日 : 2020年7月30日

【完全保存版】Linux入門サイトおすすめ7選
更新日 : 2019年9月11日

まとめ

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

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

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

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

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

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍ブログ編集部

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

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー