シンボリックリンクやハードリンクといえば、昔はUNIX系の話で出てくる用語だったと思うが、Windows 8 ぐらい? から Windowsでも 使えるようになってる。
今回、Winodwsで初めて使ったので覚書。
機能の簡単な比較
ジャンクション
対象:
同一パーテイション内のオブジェクトへのリンク
同一PC内のほかのパーテイション内オブジェクトへのリンク
権限:
リンクを作成する場所のフォルダのアクセス権があれば一般ユーザーで作成可能
パスの記録方法:
絶対パス
親ディレクトリ:
リンク元の親ディレクトリ
その他:
存在しないファイルへのリンクも可能
シンボリックリンク
対象:
同一パーテイション内のオブジェクトへのリンク
同一PC内のほかのパーテイション内オブジェクトへのリンク
ネットワーク共有フォルダへのリンク
権限:
リンクを作成する場所のフォルダのアクセス権 および 管理者権限が作成に必要
パスの記録方法:
絶対パス および 相対パス
親ディレクトリ:
リンク先の親ディレクトリ
その他:
存在しないファイルへのリンクも可能
ハードリンク
対象:
同一パーテイション内のオブジェクトへのリンク
権限:
リンクを作成する場所のフォルダのアクセス権があれば一般ユーザーで作成可能
パスの記録方法:
リンク先のオブジェクトへの直接リンク
親ディレクトリ:
リンク元の親ディレクトリ
その他:
存在しているファイルのみリンク可能
削除時など状況よって元データも削除されるので注意が必要
コマンド(mklink)
mklink [[/d] | [/h] | [/j]] <link> <target>
パラメーター | 説明 |
---|---|
/d | フォルダへのシンボリックリンクを作成。 規定はファイルのシンボリックリンク |
/h | ハードリンクを作成 |
/j | ディレクトリジャンクションを作成 |
<link> | 作成されるシンボリックリンクの名前 |
<target> | シンボリックリンクがリンクする元のファイル(フォルダ)を指定 |
仕様例
管理権限のコマンドプロンプトで
mklink /d c:\hogehoge c:\Users\User1\Documents
c:\hogehoge <<==>> c:\Users\User1\Documents のリンボリック リンクが作成されました。
個人的には フォルダのシンボリックリンクしか使わないと思うので /d さえ覚えておけばOK
あと、unix系の ln コマンド と link と target の指定が逆なので 注意。 これ最初間違ってしまった(汗
外部リンク
learn.microsoft.com(mklink)
https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/mklink
Curiosity is a Friend of Life(Windows のシンボリックリンクの作成方法と使用例)
https://libertytree-seek.com/technology/374/
コメント