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
実行結果:
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
実行結果:
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
実行結果:
既に同じリンク先名称が存在すると、このように「〜を置き換えますか(yes/no)?」のメッセージが表示されますので上書きする場合はyまたはyesを入力します。
Linuxについてもっと知りたい方へ
そもそもLinuxについて、
Linuxを効率よく学習する方法が知りたい
といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!
まとめ
ここでは、Linuxでハードリンク・シンボリックリンクを作成する「ln」コマンドについて、
- lnコマンドの使い方
- ハードリンクとシンボリックリンクの違い
- よく使われるオプション
などについて解説しました。
「ln」コマンドでハードリンクやオプション「-s」を使用してシンボリックリンクを作成するコマンドは、開発の現場でもよく使われるのでこの機会に使い方をよく理解しておきましょう。
もし「ln」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。