JUNCTION POINT
シンボリックリンクの簡易バージョンようなもの、ファイルには使えない。
Sysinternalsのjunctionコマンドの場合(XP)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
C:\T\JC>dir ドライブ C のボリューム ラベルは XP-DEF です ボリューム シリアル番号は CA34-3AB5 です C:\T\JC のディレクトリ 2014/12/27 10:34 <DIR> . 2014/12/27 10:34 <DIR> .. 0 個のファイル 0 バイト 2 個のディレクトリ 5,071,396,864 バイトの空き領域 C:\T\JC>c:\Linkout\SysinternalsSuite\junction.exe linking C:\Linkout\Linked Junction v1.06 - Windows junction creator and reparse point viewer Copyright (C) 2000-2010 Mark Russinovich Sysinternals - www.sysinternals.com Created: C:\T\JC\linking Targetted at: C:\Linkout\Linked C:\T\JC>dir ドライブ C のボリューム ラベルは XP-DEF です ボリューム シリアル番号は CA34-3AB5 です C:\T\JC のディレクトリ 2014/12/27 10:35 <DIR> . 2014/12/27 10:35 <DIR> .. 2014/12/27 10:35 <JUNCTION> linking 0 個のファイル 0 バイト 3 個のディレクトリ 5,071,396,864 バイトの空き領域 C:\T\JC>dir linking ドライブ C のボリューム ラベルは XP-DEF です ボリューム シリアル番号は CA34-3AB5 です C:\T\JC\linking のディレクトリ 2014/12/27 10:11 <DIR> . 2014/12/27 10:11 <DIR> .. 2013/11/13 19:42 35,992 kprocesshacker.sys 2013/12/22 16:12 176,472 peview.exe 2014/12/27 10:18 <DIR> plugins 2013/12/22 16:12 1,175,384 ProcessHacker.exe 3 個のファイル 1,387,848 バイト 3 個のディレクトリ 5,071,396,864 バイトの空き領域 C:\T\JC>rmdir linking |
シンボリックリンク
ファイル名やフォルダ名に対してリンクするようなもの
mklinkコマンドで作る(Vista以降)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
C:\T\jc>mklink /D linking C:\Linkout\Linked linking <<===>> C:\Linkout\Linked のシンボリック リンクが作成されました C:\T\jc>dir linking ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は CA34-3AB5 です C:\T\jc\linking のディレクトリ 2014/12/27 20:01 <DIR> . 2014/12/27 20:01 <DIR> .. 2014/12/27 20:02 12 linkedfile.txt 1 個のファイル 12 バイト 2 個のディレクトリ 3,454,509,056 バイトの空き領域 C:\T\jc>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は CA34-3AB5 です C:\T\jc のディレクトリ 2014/12/27 20:04 <DIR> . 2014/12/27 20:04 <DIR> .. 2014/12/27 20:04 <SYMLINKD> linking [C:\Linkout\Linked] 0 個のファイル 0 バイト 3 個のディレクトリ 3,454,509,056 バイトの空き領域 C:\T\jc>rmdir linking C:\T\jc>mklink /D linkingfile.txt C:\Linkout\Linked\linkedfile.txt linkingfile.txt <<===>> C:\Linkout\Linked\linkedfile.txt のシンボリック リンクが 作成されました C:\T\jc>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は CA34-3AB5 です C:\T\jc のディレクトリ 2014/12/27 20:05 <DIR> . 2014/12/27 20:05 <DIR> .. 2014/12/27 20:05 <SYMLINKD> linkingfile.txt [C:\Linkout\Linked\linkedfil e.txt] 0 個のファイル 0 バイト 3 個のディレクトリ 3,454,509,056 バイトの空き領域 C:\T\jc>del linkingfile.txt ディレクトリ名が無効です。 C:\T\jc>rmdir linkingfile.txt |
ファイルにシンボリックリンクは張るとディレクトリ属性になるみたいでファイルとして扱いづらい。しかしファイルとして開けばファイルになるようだ。
ハードリンク
ハードリンクはファイル実体に対して2つ以上のファイル名を持てる仕組み、通常ディレクトリには適用できない。
fsutilコマンド作れる。(XP)
mklinkでも作れる(Vista)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
C:\T\JC>dir ドライブ C のボリューム ラベルは XP-DEF です ボリューム シリアル番号は CA34-3AB5 です C:\T\JC のディレクトリ 2014/12/27 10:48 <DIR> . 2014/12/27 10:48 <DIR> .. 0 個のファイル 0 バイト 2 個のディレクトリ 5,030,092,800 バイトの空き領域 C:\T\JC>fsutil hardlink create linking.txt C:\Linkout\Linked\LinkedFile.txt C:\T\JC\linking.txt <<===>> C:\Linkout\Linked\LinkedFile.txt のハードリンクが作 成されました C:\T\JC>dir ドライブ C のボリューム ラベルは XP-DEF です ボリューム シリアル番号は CA34-3AB5 です C:\T\JC のディレクトリ 2014/12/27 10:49 <DIR> . 2014/12/27 10:49 <DIR> .. 2014/12/27 10:48 5 linking.txt 1 個のファイル 5 バイト 2 個のディレクトリ 5,030,486,016 バイトの空き領域 C:\T\JC>del linking.txt |
プログラム
ジャンクションやシンボリックリンクはディレクトリ扱いになり、属性にReparsePointフラグが立つ。
1 |
System.IO.FileAttributes.ReparsePoint |
1 |
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 |