Infra Engineer

リンクの作成とlnコマンド
2022.08.31
Lv1

リンクの作成とlnコマンド

 

この記事を読んでほしいひと

LPIC level1習得を目ざす、初学者のかたへ。
コマンドの基本的な使い方について、解説をします。


今回の内容

今回は、リンクの作成とlnコマンドについて解説します。
ハードリンクシンボリックリンクにつながる内容となりますので、リンクとは何か、lnコマンドの種類には何があるかをしっかり理解しましょう。

・リンクとは
・lnコマンドとは
・まとめ
・確認問題

リンクとは

リンクとは、ファイルに別名をつけることを指します。一般的にリンクと聞いたとき、Webページ上で違うページにリンクがはられているハイパーリンクをイメージされた方がいらっしゃるかもしれません。今回学習するリンクとは違うものなので注意しましょう。
このリンクにはハードリンクシンボリックリンクの2種類があります。「ハードリンクの反対はソフトリンクでは?」と思われた方、勘がするどいです。Linuxにおけるソフトリンクをシンボリックリンク、Windowsにおけるソフトリンクをショートカットといいます。シンボリックリンクは、Windowsのショートカットと似た機能をもちます。

ハードリンクと、シンボリックリンクの詳しい説明は別記事で解説しますが、ハードリンクでは、ファイルに複数のファイル名をつけることができます。リンク先とリンクを作成したファイルは、どちらも本物のファイルなので注意しましょう。シンボリックリンクとは、リンク先が本物のファイルで、リンクを作成したファイルはリンク先のパス名が書かれた特殊なファイルです。このシンボリックリンクでは、ハードリンクではできなかったディレクトリに対するリンクや、異なるファイルシステムをまたいだリンクの作成が行えるようになっております。

リンクのまとめ
リンクとは、ファイルに別名をつける機能を表す。
リンクには、ハードリンクとシンボリックの2種類がある。

lnコマンド

lnコマンドは、ハードリンクやシンボリックリンクなどの、リンクを作成するさいに用いるコマンドです。この2つのコマンドの違いは-sというオプションがあるか否かなので、すぐに覚えられると思います。

lnコマンドの書式
ハードリンク:ln  <リンク元ファイル名>  <ハードリンク名>
シンボリックリンク:ln  -s  <リンク元ファイル名>  <シンボリックリンク名>

(……ここまで読まれた方お疲れさまです。次に話す内容は少し発展的な内容を含むことになります。ハードリンクシンボリックリンクの記事を読んだあと挑戦してみてください!)

ハードリンクやシンボリックリンクはどのように活用するのでしょうか。ここでは2つ紹介したいと思います。
①長いパス名の省略
たとえば「/root/Documents/SIE/minutes/」に議事録を保存するディレクトリを作成したいとします。その都度「cd /root/Documents/SIE/minutes」と入力して移動するのは大変ですね。そこで「minutes」というシンボリックリンクを作成して、minutesディレクトリへのシンボリックリンクを作成することができます。まさにショートカットの作成と似ていますね。
②バックアップによる活用
Lpic1の試験範囲外となりますが、rsyncというバックアップを作成するコマンドにもハードリンクが用いられています。バックアップを作成するさい、変更があったものはコピーをおこない、変更がなかったものはハードリンクを作成することにより、バックアップ時間の削減や容量の節約が可能となります。

(以上で難しい内容の説明が終わります! ①の長いパス名について、一般的にリンクの作成と聞いた場合、ファイルへのショートカットをイメージする方が多いと思われますが、今回紹介したのはディレクトリへのシンボリックリンクという点に注意して下さい。)


まとめ

今回は、リンクの作成とlnコマンドについて解説しました。
リンクの作成にはlnコマンドを用いること、リンクにはハードリンクとシンボリックリンクがあることを理解してください。
最後に確認問題で、今回の記事の知識を復習してみましょう。


確認問題

問題

「ln fileA fileB」とコマンドを入力したさいには、ハードリンクが作成されるか、シンボリックリンクが作成されるか、どちらでしょうか。

解答
答え:
ハードリンクが作成される。シンボリックリンクを作成する場合は「ln -s fileA fileB」と「-s」というオプションが必要である。