シンボリックリンクについて
シンボリックリンクとその周辺用語についてまとめた。
windows使ってる人はショートカットから、UNIX系はシンボリックリンク、MacOSX系はエイリアスから入ればいいと思うー。
経緯
昔、ハッカソンで使用していたリポジトリを見ていたら ln -s xxx
という業務で見かけないコマンドを見つけた。
list
を示すls
かと一瞬思ったが、調べてみると,ln
コマンドはリンクの作成を行うとのことだった。
よくよく考えてみると、メイン機はwindowsなので、リンクがなにかよくわかっていない。環境設定パス?それともショートカットみたいなもの??シンボリックリンクってなに?ハードリンクもあるの?
そういえばエイリアスって言葉もあったなぁ。って疑問が次々と生まれてきた。
まずは、用語についてそれぞれ調べる。
用語
- リンク
- シンボリックリンク
- ハードリンク
- エイリアス(Mac OSX)
- ショートカット(win)
リンク
そもそもリンクとは参照のこと。
シンボリックリンク
Windowsでいうところのショートカットのようなもの。
対象ファイルまでのパスを含んだただの小さなファイル。
存在しないファイルへのシンボリックリンクも作成することができる。
ハードリンク(あるいは単にリンク)が持つ、同一ファイルシステム内でしか使用できないという欠点を解決するために導入された。(らしい)
参照
ハードリンク
ハードリンクは「ファイルに別名を付けるリンク」。
そのため、ハードリンクを削除する事で実体ファイルを削除できる。実態を共有しているため削除には注意が必要。
シンボリックリンクとハードリンクの違い
実態ファイルを削除できるか
ショートカット(win)
シンボリックリンクの劣化版(らしい)
ショートカットとリンクのちがい
ショートカットは単に宛先が書かれたファイルに過ぎないが、シンボリックリンクは宛先のファイルやディレクトリ(フォルダー)と同じ扱いをすることが可能
この比較はよくわからないが、実際にコマンドラインからの操作を行うと理解できる。
コマンドラインからも実フォルダや実ドライブと同じ取り扱いが可能となる
エイリアス
エイリアスはMac OS Xでのシンボリックリンクの呼称。エイリアスを削除しても本体には何も影響しない。
エイリアスはほかのOSよりも進んでおり、リンク先ファイル(オリジナルと呼ぶ)を移動したりファイル名が変更しても自動的に追従する。(エイリアスレコードと呼ばれる、ファイル固有の参照情報を保存)
ただし、UNIXでエイリアスというと、コマンドをを別名で登録する機能のことなる。
command
# win
mklink /s(soft) /h(hard)
# UNIX・Mac OSX
ln -s(soft=symbolic) -h(hard)