1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windows OSのファイルやフォルダパスへの参照を行う機能(ジャンクション・シンボリックリンク・ハードリンク)を試す

Last updated at Posted at 2022-11-20

Windows OSにある、ファイル・フォルダパスへの参照リンクを作成する機能(リンク機能、ショートカットのように別の場所にあるファイル・フォルダへリダイレクトし、リンクがあたかも実在するパスのように利用できる機能)を、以降で試す。

リンクを作成する機能、3種類: ジャンクション・シンボリックリンク・ハードリンクを試す。

mklinkコマンド

始めに、mklinkコマンドを確認。

Microsoft Windows [Version 10.0.19045.2251]
(c) Microsoft Corporation. All rights reserved.

D:\...\リンク作成テスト>mklink
シンボリック リンクを作成します。

MKLINK [[/D] | [/H] | [/J]] リンク ターゲット

        /D          ディレクトリのシンボリック リンクを作成します。既定では、
                    ファイルのシンボリック リンクが作成されます。
        /H          シンボリック リンクではなく、ハード リンクを作成します。
        /J          ディレクトリ ジャンクションを作成します。
        リンク      新しいシンボリック リンク名を指定します。
        ターゲット  新しいリンクが参照するパス (相対または絶対)
                    を指定します。

テスト用のサンプルフォルダ構成

テスト用のサンプルフォルダ構成は、以下のように用意。

D:\...\リンク作成テスト>tree /f
│  test2 - ショートカット.lnk
│  リンク作成時のコンソール出力.txt
│
└─test1
    └─test2
        └─test3
                test1.txt

mklink /j ディレクトリへのジャンクション

以下、Windowsコマンドプロンプト(管理者権限なし)。

mklink /j →成功OK

D:\...\リンク作成テスト>mklink /j mklink-j test1\test2
mklink-j <<===>> test1\test2 のジャンクションが作成されました


D:\...\リンク作成テスト>dir

    2022/11/19  20:54    <DIR>          .
    2022/11/19  20:54    <DIR>          ..
    2022/11/19  20:54    <JUNCTION>     mklink-j [D:\...\リンク作成テスト\test1\test2]
    2022/11/19  20:56    <DIR>          test1
    2022/11/19  20:56             1,233 test2 - ショートカット.lnk


D:\...\リンク作成テスト>mklink-j\test3\test1.txt
(⇒テキストファイルが開く →成功OK)

mklink /d ディレクトリのシンボリックリンク

以下、Windowsコマンドプロンプト(管理者権限あり)。

mklink /d (相対パス) →成功OK

D:\...\リンク作成テスト>mklink /d mklink-d test1\test2
mklink-d <<===>> test1\test2 のシンボリック リンクが作成されました


D:\...\リンク作成テスト>dir

    2022/11/19  21:45    <DIR>          .
    2022/11/19  21:45    <DIR>          ..
    2022/11/19  21:45    <SYMLINKD>     mklink-d [test1\test2]
    2022/11/19  20:54    <JUNCTION>     mklink-j [D:\...\リンク作成テスト\test1\test2]
    2022/11/19  20:56    <DIR>          test1
    2022/11/19  20:56             1,233 test2 - ショートカット.lnk


D:\...\リンク作成テスト>mklink-d\test3\test1.txt
(⇒テキストファイルが開く →成功OK)

mklink /d →権限なし

Windowsコマンドプロンプト(管理者権限なし)で、

D:\...\リンク作成テスト>mklink /d mklink-d test1\test2
この操作を実行するための十分な特権がありません。

mklink /d (絶対パス) →成功OK

C:\WINDOWS\system32>mklink /d mklink-d "D:\...\リンク作成テスト\test1\test2"
mklink-d <<===>> D:\...\リンク作成テスト\test1\test2 のシンボリック リンクが作成されました


C:\WINDOWS\system32>dir mk*

    2022/11/19  21:42    <SYMLINKD>     mklink-d [D:\...\リンク作成テスト\test1\test2]


C:\WINDOWS\system32>mklink-d\test3\test1.txt
(⇒テキストファイルが開く →成功OK)

mklink /h ファイルのハードリンク

以下、Windowsコマンドプロンプト(管理者権限なし)。

mklink /h →成功OK

D:\...\リンク作成テスト>mklink /h mklink-h.txt test1\test2\test3\test1.txt
mklink-h.txt <<===>> test1\test2\test3\test1.txt のハードリンクが作成されました


D:\...\リンク作成テスト>dir

    2022/11/20  10:26    <DIR>          .
    2022/11/20  10:26    <DIR>          ..
    2022/11/19  21:45    <SYMLINKD>     mklink-d [test1\test2]
    2022/11/19  21:22                18 mklink-h.txt
    2022/11/19  20:54    <JUNCTION>     mklink-j [D:\...\リンク作成テスト\test1\test2]
    2022/11/19  20:56    <DIR>          test1
    2022/11/19  20:56             1,233 test2 - ショートカット.lnk


D:\...\リンク作成テスト>mklink-h.txt
(⇒テキストファイルが開く →成功OK)

mklink /h →フォルダは不可

D:\...\リンク作成テスト>mklink /h mklink-h test1\test2
アクセスが拒否されました。

最終的なフォルダ構成表示をチェック

D:\...\リンク作成テスト>tree /f
│  mklink-h.txt
│  test2 - ショートカット.lnk
│  リンク作成時のコンソール出力.txt
│
├─mklink-d
│  └─test3
│          test1.txt
│
├─mklink-j
│  └─test3
│          test1.txt
│
└─test1
    └─test2
        └─test3
                test1.txt

詳細情報

引用:

image.png
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?