シンボリックリンク

シンボリックリンクというとUNIXの機能のように思われますが、
最近のWindowsでも使えるようになっています。

しかし、Windowsのシンボリックリンクには一部制限があり、
ハードリンクとシンボリックリンクを組み合わせて使うことになります。

以下はハードリンクとシンボリックリンクの違いのまとめです。

UNIXの場合
ハードリンクシンボリックリンク
ファイルのリンクができる
ディレクトリのリンクができる×※
ドライブ間のリンクができる×
ファイルシステムの制約があるなし
※Solarisなどではroot権限で可能

Windowsの場合
ハードリンクシンボリックリンク
ファイルのリンクができる×
ディレクトリのリンクができる×
ドライブ間のリンクができる×
ファイルシステムの制約があるNT4.0/2000/XPのNTFSのみサポート

Tcl8.4からハードリンクとシンボリックリンクに対応しました。
ただし、MacOSではハードリンクがサポートされていません。
以下にハードリンクとシンボリックリンクの簡単な使用例を示します。

ハードリンクを作成する

ハードリンクを使ってファイルA.txtに別名B.txtを付けるには、以下のようにします。

file link -hard B.txt A.txt

シンボリックリンクを作成する

シンボリックリンクを使ってディレクトリAのリンクBを作るには、以下のようにします。

file link -symbolic B A

どちらがシンボリックリンクかを見分けるには、以下のようにします。

# Aのタイプを見る
file type A
=> directory
# Bのタイプを見る
file type B
=> link
# Bのリンク元を見る
file readlink B
=> E:\A

Windowsの場合、エクスプローラなどからシンボリックリンクを見分けられないので注意してください。

参考文献