リンクの4つのタイプ
あるNTFSファイルシステムでサポートされているファイルへのリンクの3種類のハードリンク、ジャンクション、シンボリックリンクが:。
- ショートカット
- ソフトリンク
- ハードリンク
- シンボリックリンク
ショートカット(ショートカット)
Aシェルリンクは、シェルのネームスペースで、別のオブジェクトにアクセスするために使用される情報が含まれたデータオブジェクトで、Windowsのエクスプローラから見える任意のオブジェクトです。シェルリンクを介してアクセスできるオブジェクトの種類は、ファイル、フォルダ、ディスクドライブ、およびプリンタ、
Windows上で*.lnk
ファイルの終わり、これらのファイルは、多くの場合、ファイルやディレクトリの特定の場所を指定するために使用され、高度にスケーラブルな、デスクトップのショートカットは、この種のです。
リンクソフト/ハードリンク(ジャンクション[リンクソフト] /ハードリンク)
簡潔な式、ソフトディレクトリ、ハード・ファイル。つまり、ディレクトリへのリンクだけのソフトリンクでは、ハードリンクは、ファイルにリンクすることができます。
ハードリンクは、複数のパスがそれによってファイルのファイル・システムの表現である単一のファイルを参照する同じボリュームに
ジャンクション(また、ソフトリンクと呼ばれる)はストレージがそれをオブジェクトということでハードリンクとは異なり参照が別々のディレクトリがあります
ハードリンクファイルの属性が同期され、そしてA <==> B
、B Aファイルは、ファイルへのハードリンクされ、その後、(例えば隠されたAなど)Aのプロパティを変更するプロパティBへの変更を同期させ、プロパティの変更は、A、Bに同期します
シンボリックリンク(シンボリックリンク)
シンボリックリンクは、ファイル・システム・オブジェクトその別のファイル・システム・オブジェクトを指します。オブジェクトは、ターゲットと呼ばれるに指摘されています。
シンボリックリンクは、ユーザーに対して透過的です。リンクは通常のファイルまたはディレクトリとして表示され、まったく同じ方法で、ユーザーまたはアプリケーションによって作用することができます。
より強力なシンボリックリンク、缶リンクファイルとフォルダ。シンボルマークは、この手段はあなたが聞くことができるという「カオス指。」どちらの手段です。
これは、ループ内でお互いにポイント、またはそれ自体を対象リンクという2つのリンクを作成するには(賢明ではない)ことも可能です。シンボリックリンクは、それらを処理するように設計されていないアプリケーションにセキュリティの脆弱性を公開することができます。
違い
タイプ\プロパティ | ファイルにリンクすることができます | あなたは、ディレクトリにリンクすることができます | ディスクパーティションをまたぎます | 存在しないターゲットを指すことができます | あなたは相対的なディレクトリを指すことができます | どのように削除するには |
---|---|---|---|---|---|---|
ショートカット | 缶 | 缶 | 缶 | 缶 | ノー | del ファイル |
ハードリンク | 缶 | ノー | ノー | ノー | ノー | del ファイル |
ソフトリンク | ノー | 缶 | 缶 | 缶 | ノー | rd フォルダ |
シンボリックリンク | 缶 | 缶 | 缶 | 缶 | 缶 | rd フォルダや del ファイル |
リンクを作成するためのコマンドライン
まず、ショートカットがコマンドラインから作成されていない、(手動右COMインターフェイスを作成して呼び出すための唯一の方法を作成するIShellLink
スクリプトコマンドを作成することなく、作成します)。そう指示していない、COMインターフェイスを呼び出すことがあるため、このプログラムは、いくつかの困難をもたらしました。
もちろん、インターネットは、exeファイルがショートカットを作成することができますコンパイルされたhttp://www.optimumx.com/downloads.html#Shortcutも、このCOMインターフェイスは、その後、C ++で使用されている使用し、。
ソフトリンク、ハードリンク、注文することができ、シンボリックリンクmklink
を作成します。
構文
MKLINK [[/ D] | [/ H] | [/ J]]はのLinkNameターゲット
キー:
/ Dディレクトリのシンボリックリンクを作成します。(デフォルトはファイルです)
/ Hの代わりにシンボリックリンクのハードリンクを作成します。
/ Jは、ディレクトリジャンクションを作成します。
新しいシンボリックリンク名をLINKNAME。
新しいリンクが参照する(相対的または絶対的)経路を標的とします。
使用すると、mklink
管理者権限を必要とし、唯一の作成、その後、削除して、同じ名前のリンクがある場合にカバーすることはできません。
リンクを作成するためのAPI
この記事の下にここで推奨、などのサッカーがあるハードリンク、WindowsののシンボリックリンクのAPI、黒魔術のディレクトリソフトリンクを作成し、COMの使用ショートカットを。
http://www.flexhex.com/docs/articles/hard-links.phtml
例
リンクを生成するには、次のスクリプトを実行します。
@echo off
set root_path=%userprofile%\link
set app_path=%root_path%\app_1.1.5.235
set readme_path=%app_path%\readme.txt
:: 创建根目录
mkdir %root_path%
:: 创建程序目录
mkdir %app_path%
:: 创建程序目录软链接
mklink /j %root_path%\app_junction %root_path%\..\link\app_1.1.5.235
:: 创建程序目录符号链接
mklink /d %root_path%\app_symbolic %root_path%\..\link\app_1.1.5.235
:: 手动创建程序目录快捷方式 %root_path%\app_shortcut.lnk
:: 创建文件 readme.txt
echo generate link >> %readme_path%
:: 创建文件硬链接
mklink /h %app_path%\readme_hard.txt %readme_path%
:: 创建文件符号链接
mklink %app_path%\readme_symbolic.txt %readme_path%
:: 手动创建文件快捷方式readme.lnk
私たちは、次の結果を見ることができます:
ここでは、使用中に、見ることができるmklink
前に、相対パスにリンク、私は相対パスを使用しているターゲットパスを作成するときに、しかし、あなたはソフトリンクのターゲットパスは絶対パスになっています見ることができます計算され、シンボリックリンクのパスまたは書き込みの対象同様に、ターゲットパスのショートカットと、ハードリンク絶対パス。
参照
- https://ss64.com/nt/mklink.html
- https://en.wikipedia.org/wiki/NTFS_links
- https://ss64.com/nt/shortcut.html
- https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ishelllinka
- http://www.optimumx.com/downloads.html#Shortcut
- http://www.flexhex.com/docs/articles/hard-links.phtml