リンクの作成とlnコマンド
この記事を読んでほしいひと
LPIC level1習得を目ざす、初学者のかたへ。
コマンドの基本的な使い方について、解説をします。
今回の内容
今回は、リンクの作成とlnコマンドについて解説します。
ハードリンク、シンボリックリンクにつながる内容となりますので、リンクとは何か、lnコマンドの種類には何があるかをしっかり理解しましょう。
リンクとは
リンクとは、ファイルに別名をつけることを指します。一般的にリンクと聞いたとき、Webページ上で違うページにリンクがはられているハイパーリンクをイメージされた方がいらっしゃるかもしれません。今回学習するリンクとは違うものなので注意しましょう。
このリンクにはハードリンクとシンボリックリンクの2種類があります。「ハードリンクの反対はソフトリンクでは?」と思われた方、勘がするどいです。Linuxにおけるソフトリンクをシンボリックリンク、Windowsにおけるソフトリンクをショートカットといいます。シンボリックリンクは、Windowsのショートカットと似た機能をもちます。
ハードリンクと、シンボリックリンクの詳しい説明は別記事で解説しますが、ハードリンクでは、ファイルに複数のファイル名をつけることができます。リンク先とリンクを作成したファイルは、どちらも本物のファイルなので注意しましょう。シンボリックリンクとは、リンク先が本物のファイルで、リンクを作成したファイルはリンク先のパス名が書かれた特殊なファイルです。このシンボリックリンクでは、ハードリンクではできなかったディレクトリに対するリンクや、異なるファイルシステムをまたいだリンクの作成が行えるようになっております。
リンクには、ハードリンクとシンボリックの2種類がある。
lnコマンド
lnコマンドは、ハードリンクやシンボリックリンクなどの、リンクを作成するさいに用いるコマンドです。この2つのコマンドの違いは-sというオプションがあるか否かなので、すぐに覚えられると思います。
シンボリックリンク:ln -s <リンク元ファイル名> <シンボリックリンク名>
(……ここまで読まれた方お疲れさまです。次に話す内容は少し発展的な内容を含むことになります。ハードリンクとシンボリックリンクの記事を読んだあと挑戦してみてください!)
ハードリンクやシンボリックリンクはどのように活用するのでしょうか。ここでは2つ紹介したいと思います。
①長いパス名の省略
たとえば「/root/Documents/SIE/minutes/」に議事録を保存するディレクトリを作成したいとします。その都度「cd /root/Documents/SIE/minutes」と入力して移動するのは大変ですね。そこで「minutes」というシンボリックリンクを作成して、minutesディレクトリへのシンボリックリンクを作成することができます。まさにショートカットの作成と似ていますね。
②バックアップによる活用
Lpic1の試験範囲外となりますが、rsyncというバックアップを作成するコマンドにもハードリンクが用いられています。バックアップを作成するさい、変更があったものはコピーをおこない、変更がなかったものはハードリンクを作成することにより、バックアップ時間の削減や容量の節約が可能となります。
(以上で難しい内容の説明が終わります! ①の長いパス名について、一般的にリンクの作成と聞いた場合、ファイルへのショートカットをイメージする方が多いと思われますが、今回紹介したのはディレクトリへのシンボリックリンクという点に注意して下さい。)
まとめ
今回は、リンクの作成とlnコマンドについて解説しました。
リンクの作成にはlnコマンドを用いること、リンクにはハードリンクとシンボリックリンクがあることを理解してください。
最後に確認問題で、今回の記事の知識を復習してみましょう。
確認問題
「ln fileA fileB」とコマンドを入力したさいには、ハードリンクが作成されるか、シンボリックリンクが作成されるか、どちらでしょうか。