【実例紹介】lnコマンドでファイルをリンクさせる方法と使い方

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年3月)

✓当記事はこのような方に向けて書かれています

「lnコマンドでファイルをリンクしたい」

「lnコマンドの使い方がよくわからないのだろうか?」

「lnコマンドのオプションについて知りたい」

✓当記事では以下をお伝えします

  • lnコマンドとは
  • lnコマンドを使う際の基本的な構文とオプション
  • lnコマンドの具体的な使用例とその応用演習

当記事では、lnコマンドの基本についてはもちろん、初心者にもわかりやすい操作方法について詳しく解説しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

lnコマンドで知っておくべき基本事項

lnコマンドで知っておくべき基本事項についてご紹介します。

lnコマンドの具体例を見る前に、簡単な基本を覚えておきましょう。

  • lnコマンドとは?
  • lnコマンドの基本構文:シンボリックリンク
  • lnコマンドの基本構文:ハードリンク
  • シンボリックリンクについての詳しい解説
  • ハードリンクについての詳しい解説

lnコマンドとは何ですか?

lnコマンドは、ファイルのシンボリックリンクまたはハードリンクの作成を可能にするユーティリティです。

シンボリックリンクは、ファイルやディレクトリに対するポインターのようなもので、実体の場所を指し示す代わりに、別の場所への参照を提供します。

ハードリンクは、同じファイルやディレクトリに対して別の名前を作成し、同じファイルやディレクトリを複数の場所で参照できるものです。

lnコマンドの基本構文:シンボリックリンク

lnコマンドの基本的な構文は次のとおりです。

ln [オプション] ソースファイル [リンク名]

ここで、ソースファイルはリンク元のファイルまたはディレクトリであり、リンク名は作成するリンクの名前です。

リンク名を省略すると、ソースファイルと同じ名前のリンクが作成されます。

たとえば、itc.txtというファイルに対するシンボリックリンクitclinkを作成する場合、次のようにコマンドを実行します。

$ ln -s itc.txt itclink

このコマンドにより、itclinkという名前のシンボリックリンクが作成され、実体としてはitc.txtを指し示すことになります。

リンクの確認は、「ls -l」コマンドで可能です。

$ ls -l
total 0
-rw-r--r--    1 root     root             0 Mar 29 23:53 itc.txt
lrwxrwxrwx    1 root     root             7 Mar 29 23:54 itclink -> itc.txt

lnコマンドの基本構文:ハードリンク

同じファイルに対するハードリンクを作成する場合は、次のようにコマンドを実行します。

ln itc.txt itchard

このコマンドにより、itchardという名前のハードリンクが作成され、実体としてはitc.txtを指し示すことになります。

ハードリンクを作成すると以下のようになります。

$ ls -l
total 0
-rw-r--r--    2 root     root             0 Mar 29 23:53 itc.txt
-rw-r--r--    2 root     root             0 Mar 29 23:53 itchard
lrwxrwxrwx    1 root     root             7 Mar 29 23:54 itclink -> itc.txt

lnコマンドは、シンボリックリンクやハードリンクを作成するために使用される非常に重要なコマンドの1つです。

シンボリックリンクについての詳しい解説

シンボリックリンクとは、Linuxシステムにおいて、あるファイルやディレクトリに対して、別の場所にあるファイルやディレクトリを参照するための仕組み。

通常のファイルとして作成されますが、実際のデータを持たず、単なる「ショートカット」のようなものといえます。

例えるなら、元ファイル・ディレクトリをコピーするのではなく、そこまでワープできる入り口を作るようなものです。

活用するメリットは以下のとおりです。

  • 複数の場所から同じファイルやディレクトリにアクセスすることができる
  • 長いパス名を短くすることもできる

ただし、元のファイルやディレクトリを削除すると、シンボリックリンクも無効になることは覚えておきましょう。

ハードリンクについての詳しい解説

ハードリンクは、Linuxシステムにおいて、同じファイルを複数名で参照できる仕組みです。

元のファイルと同じi-nodeと呼ばれるファイルのメタデータを参照するため、元のファイルが変更されると、ハードリンクを経由してアクセスした場合でも最新のデータを参照できます

ハードリンクを使用することで、1つのファイルに複数の名前を付けることができ、複数のプロセスから同じファイルにアクセスできるようになるのです。

ただしハードリンクを作成する場合には、以下の注意が必要となります。

  • ハードリンクを経由して元のファイルを削除すると、ハードリンクを経由してアクセスしたファイルも同時に削除される
  • ハードリンクを使用すると、ファイルの参照回数が増えるため、ファイルの消去が行われない限り、ストレージ容量が増えてしまう

lnコマンドのオプション一覧

lnコマンドの一覧について、詳しく見ていきます。

コマンドを使いこなすことで、できることの幅が広がるのです。

  • シンボリックリンクを作成:-s
  • リンクの強制削除:-f
  • シンボリックリンクを逆参照しない:-n
  • バックアップを作る:-b
  • サフィックスを指定したバックアップ作成:-S

シンボリックリンクを作成:-s

-sオプションを使うと、シンボリックリンクを作成できます。
次のようなコマンドになります。

ln -s リンク元ファイル リンク名

リンクの強制削除:-f

-fは、指定したリンクを強制的に削除するもの。

ln -f ファイル名 リンク名

$ ln -s itc.txt itc
$ ls -l
total 4
lrwxrwxrwx 1 hnish hnish  7 Mar 30 21:01 itc -> itc.txt
-rw-r--r-- 1 hnish hnish 66 Mar 16 09:27 itc.txt

hnish@DESKTOP-AN1L71S:~/doc$ ln -f itc.txt itc
hnish@DESKTOP-AN1L71S:~/doc$ ls -l
total 8
-rw-r--r-- 2 hnish hnish 66 Mar 16 09:27 itc
-rw-r--r-- 2 hnish hnish 66 Mar 16 09:27 itc.txt

シンボリックリンクを逆参照しない:-n

-iオプションを使うと、シンボリックリンクを逆参照しないため、通常のファイルのように扱われます。

ln -n リンク元ファイル リンク名

$ ln -n itc.txt itc
$ ls -l
total 0
-rw-r--r--    2 root     root             0 Mar 30 11:37 itc
-rw-r--r--    2 root     root             0 Mar 30 11:37 itc.txt

バックアップを作る:-b

-bオプションは、ファイルが存在する場合、リンクを作る前にバックアップが作られるもの。

バックアップファイルの前には「~」が付きます。

#存在するファイルを指定する
$ln -b itc.txt itc
$ls -l
total 0
-rw-r--r--    4 root     root             0 Mar 30 11:37 itc
-rw-r--r--    4 root     root             0 Mar 30 11:37 itc.txt
-rw-r--r--    4 root     root             0 Mar 30 11:37 itc~

サフィックスを指定したバックアップ作成:-S

-Sオプションを使うと、「~」ではなくお好きなサフィックスでバックアップが作れます。

ln -S お好きなサフィックス リンク元 リンク先

$ ln -S _testbak itc.txt itc
$ ls -l
total 20
-rw-r--r-- 5 hnish hnish 5 Mar 30 21:04 itc
-rw-r--r-- 5 hnish hnish 5 Mar 30 21:04 itc.txt
-rw-r--r-- 5 hnish hnish 5 Mar 30 21:04 itc_testbak

まとめ:lnを活用するとリンクで効率良く作業できる

当記事の内容をまとめます。

  • lnコマンドは特定のファイルへのリンクを作れるコマンド
  • シンボリックリンクとは実体がなく本体を指し示すもの
  • ハードリンクとは本体のi-nodeを指し示すショートカットのようなもの

lnコマンドはあまり使う機会が無いかもしれませんが、知っておくととても便利です。

Windowsを使っている方ならショートカットのようにして使えるものと覚えておきましょう。

うまく活用して、作業効率の向上を目指してください。

タイトルとURLをコピーしました