技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

Linuxではlnコマンドでリンクを作成できるが、このリンクには2つの種類があることが分かった。
 

「ソフトリンク」と「ハードリンク」について

ソフトリンク

ソフトリンクは、WindowsのショートカットやMacのエイリアスと同じものである。Linuxでは、ソフトリンクのことをシンボリックリンクと呼ぶ。シンボリックリンクは実体を間接的に参照する。その為、実体のパスが変わったり、削除されたりするとシンボリックリンクからはアクセスができなくなる。
シンボリックリンクはパーティションを超えて実体にアクセスすることが可能になっている。これは、WindowsのCドライブに作ったショートカットから、Dドライブに作ったリンク先へアクセスできることをイメージすると理解しやすい。
 
Linuxでシンボリックリンクを作成するコマンドの書式

ln -s [リンク先ディレクトリ名orリンク先ファイル名] [作成するシンボリックリンクファイル名]

 

ハードリンク

ハードリンクはファイルに複数の名前を割り当てる機能である。ハードリンクは実体を直接的に参照する。一般的な、WindowsのショートカットやMacのエイリアスとは、全くの別物なのでイメージが湧きにくいかもしれないが、ファイルが実際にそこにあるように扱うことができるという考え方である。
複数のハードリンクがある場合、ファイルに対してはどのリンクも同じ扱いになる。また、全てのハードリンクが削除されるまでファイルの本体は削除されない。
 
補足だが、ファイルへのハードリンクはできるが、ディレクトリへのハードリンクは許可されていない。ハードリンクの作成にはroot権限が必要になる。(自分の環境のAmazon Linuxではroot権限ですらディレクトリへのハードリンクを許可されていなかった。)
 
Linuxでハードリンクを作成するコマンドの書式

ln [リンク先ディレクトリ名orリンク先ファイル名] [作成するハードリンクファイル名]

 
Linuxでリンクを削除するコマンドの書式

rm [リンクファイル名]

※削除する場合、hoge/ のようにスラッシュをつけると削除ができないので注意する。
 
ハードリンクとシンボリックリンクを削除したい場合は上記のコマンドを使用することで削除することができる。
 
 
以上
 
 
参考
MISTY-NET UNIXコマンド講座 リンクについて
ハードリンクとシンボリックリンクについて

CygwinでVimを使うとカーソルキーとBackspaceキーが正常に入力できないので対処した arrow-right
Next post

arrow-left WordPressを移設した際にハマったところまとめ
Previous post

コメントを残す