2つの異なるドライブ上のWindows7ハードリンク


13

Cドライブに、Dドライブのファイルを指すハードリンクを作成しようとしています。管理者権限でターミナルを開き、次のことを試します。

C:\Users\sandro>mklink /H _vimrc D:\sandro-desktop\.vimrc

表示されるエラーは次のとおりです。システムはファイルを別のディスクドライブに移動できません。

ソフトリンクを試すと、何らかの理由でリンクの内容への変更がターゲットファイルに反映されないという問題が発生します。

ありがとうございました!


どの程度_vimrc先の代わりに.vimrc
ulidtko

答えはありませんが、ここschinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.htmlに適切な情報があります。
2011

回答:


21

ハードリンクは、ファイルシステムの境界を越えることができないファイルシステム機能です。C:のファイルをD:にハードリンクすることはできません。これは、それらが別個のファイルシステムであるためです。それぞれに同じタイプのファイルシステム(NTFSなど)が含まれている場合がありますが、これらは別々のファイルシステムです。


s / different / separate /の方が適切だと思います。
user1686

@grawity:はい、同意しました。そう編集した。
マイクフィッツパトリック

これを回避する方法についてのアイデアはありますか?
Sandro

Windows 7のユーザープロファイル(またはマイドキュメントフォルダーのみ)をドライブDに移行すると、ハードリンクが機能します。あなたがこれを行う場合、あなたは(一般プロパティタブを通じて)は、Windows 7での適切なメソッドを使用してください-手動でCからフォルダを移動しないでください:Dに:
マイク・フィッツパトリック

C:とD:の間のハードリンクが機能する唯一のケースは、それらが同じファイルシステム上にある場合ですsubst D: C:\utils(たとえば、これをレジストリーを使用してsubst永続化して作成します)。
miroxlav 2017

3

Windows 7の場合、シンボリックリンクを使用できます-Steammoverはまさにそれを行います


それは私が今やっていることとどう違うのですか?私はそれを試してみることができると思います:)
サンドロ

symlinksはディレクトリ間で機能します-古いジャンクション関連のオプションの多くは機能しません。さらに、コマンドを伝えるきちんとしたフロントエンドがあるので、何が行われるかを簡単に理解できます。私は主にそれはあなたが、それは少なくとも大騒ぎして行う必要がある仕事を行う必要があり、私は確かにその「より良い」場合、私は何を読んでからじゃないので、XPを使用しています
ジャーニーマンオタク

2
@Sandro:技術的な詳細:2つのハードリンクが同じiノードを指します(UnixではWindowsのNTFSでも非常に似ています)。これは単一のファイルシステム内でのみ機能します。2つのハードリンクは完全に同一です。「オリジナル」はありません。一方、シンボリックリンクは、実際には任意のテキストであるパスを指します。
user1686

それがシンボリックリンクの動作方法である場合、一方のファイルに変更を加えたときに、もう一方のファイルに変更が表示されないのはなぜですか?
Sandro、

-3

これを試して:

mklink /H "C:\Users\sandro_vimrc" "D:\sandro-desktop\.vimrc"

これはターゲットのファイル名に関係していると思います。ターゲットリンクを引用符で囲みます。

あなたのリンクもフルパスである必要があると思います。


私はそれらを試してもまだ何もしませんでした。しかしアイデアをありがとう!
Sandro、

おそらくターゲットのドット名です。他のファイルでも機能しますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.