【Linux】lnコマンド-リンクについて

 

今日はlnコマンドについて語ります

スポンサードサーチ

リンクとは

Linuxではファイルに別名を付けることが可能です。この機能をリンクと言い、別名を付けることをリンクを張ると言います。

リンクには二種類あります

・ハードリンク

・シンボリックリンク

現在はシンボリックリンクが多く使われるので、こちらを覚えておきましょう。ハードリンクはそこまで使われませんが一応解説しておきます

スポンサードサーチ

ハードリンク

次の例はfile1というファイルに対して、file2という名前でハードリンクを作成します。

これにより、別のコマンドからファイル名として、file2を指定するとfile1にアクセスします。windowsでいうショートカット的な雰囲気ですが若干違います。
ハードリンクで追加したファイル名は、どっちかが本物でどちらかがリンクではないです。どっちかというと一つのファイルに複数の名前を付けていると思っていただいてください。

スポンサードサーチ

ハードリンクの削除

rmコマンドでハードリンクを作成したファイルを削除しても、指定したファイルだけが残り、ファイルの実体は残ったままとなります。

uaハードリンクを持つファイルは、全てのハードリンクがなくなったときに削除されます。

 

ハードリンクは複数の名前を付ける機能です。その複数の名前がすべて削除された時に、ファイル自体も削除される仕組みとなっています。

シンボリックリンク

ハードリンクは、ディレクトリに対して作成不可であったり、異なるディスク間での作成はできない等のいくつかの制限が存在します。

一方でシンボリックリンクはハードリンクのような制限がないため、こちらが頻繁に使用されます。ln コマンドに -s オプションを付けるとシンボリックリンク作成が可能です。

こうすることで、シンボリックリンクを作成できました。リンク先を確認するには-lを指定することでどこにリンクされているかわかります。

コマンドでファイル名の代わりにシンボリックリンクを見ると、そのリンク先のファイルにアクセスします。

このように、シンボリックリンクは、リンク先のパス名が書かれたショートカットのような特殊ファイルです。リンク先がファイルの実体であり、本物のファイルです。

シンボリックリンクの削除

シンボリックリンクを削除するにはrmコマンドで削除できます。この時、リンク先のファイルには何も影響を与えません。

逆に、file1を削除してしまうと、リンク先を削除することになるので、シンボリックリンクはリンク先を失い、リンクが破壊されたという状態になります。

私の場合はls- lでの表示の際 file2 ->file1が赤字で表示されました。

スポンサードサーチ

まとめ

今回はシンボリックリンクについてまとめました。.vimrcの設定などで私の場合は応用した経緯があります。暗記までする必要はありませんが、このようなコマンドがあったと頭の片隅には入れておきましょう

コメントを残す

メールアドレスが公開されることはありません。