私のホームディレクトリは、ユーザーphiとしてc:\ Users\phiで、c:\ Users\abcにディレクトリを作成しました。 c:\ Users\phi\helloからc:\ Users\abc\helloへのシンボリックリンクが必要です。
次のコマンドを実行します
mklink c:\ Users\abc\hello c:\ Users\phi\hello
しかし、Access is deniedエラーが発生します。ユーザーphiは管理者なので、c:\ Users\abcにファイルを書き込むことに問題はありません。
どうしてこれなの? mklinkする方法は?
サイト から回答が見つかりました。つまり、管理者としてcmd.exeを実行する必要がありました。
重要なポイント:
/D
リンクがディレクトリ用である場合、スイッチを使用する必要があります。使用法:
mklink /D c:\users\me\new_link\ c:\users\me\original_folder\
ジャンクションを作成しようとすると、同じエラーが表示されることに注意してください。 マップされたドライブ。 MSDNのこのページの例に出会うまで、私はこれについて自分の髪を引き出していました ハードリンクとジャンクション 。
短い答え:ローカルボリュームでのみmklinkを使用できます。
Windows 7以降では、リンクとジャンクションを作成するには特別なセキュリティ権限が必要です。管理者は、secpol.msc
を使用してLocal Policies\User Rights Assignment\Create symbolic links
を設定するユーザーにこの権限を付与できます。
ユーザーがその時にログオンしている場合、リンクを作成できるようにするには、ログオフしてから再度ログオンする必要があります。
リンクが一部のアプリのセキュリティの弱点を露呈する可能性があるという警告に注意してください-私はそれらの弱点が何であるかを調査していません。
Linuxを頻繁に使用している場合は、Windowsでパラメーターが交換されることに注意してください。
間違った順序を使用すると、「アクセス拒否」も表示されます。オリジナルが既に存在する場所にシンボリックリンクを作成しようとしているためです。
ウィンドウズ: mklink /D link original
Linux:ln -s original link
これは、誤ってファイルに対してmklink /D
を実行したためです。リンクはエクスプローラーには表示されませんでしたが、Windowsエクスプローラーには表示されました。コマンドプロンプトを使用して、元の無効なディレクトリリンクを削除し、/D
オプションなしで再作成しました。
ちなみに、cmd.exeを管理者として実行していても、 "アクセスが拒否されました"というエラーが表示されました。
管理者としてmklink
を実行することとは別に、リンク先のフォルダへの十分なアクセス許可があることを確認する必要もあります。
実行すると:
mklink/j C:\ path_to_link C:\ destination
うまくいくはずです。私の場合、powershellとcmdは同じ出力を生成しました。 PowerShellの場合は、コマンドを
cmd/c mklink ...
あなたがしなければならないディレクトリ:
mklink /D c:\Users\abc\hello c:\Users\phi\hello
奇妙に聞こえるかもしれませんが、作成しようとしているファイルまたはフォルダーがまだ存在していないことを確認してください。 cmdプロンプトで見落としがちな場合もあります。