Lien dur Windows7 sur deux disques différents

13

J'essaie de créer un lien dur sur mon lecteur C qui pointe vers un fichier sur mon lecteur D. J'ouvre un terminal avec des privilèges d'administrateur et j'essaye ce qui suit:

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

L'erreur que j'obtiens est la suivante: le système ne peut pas déplacer le fichier vers un autre lecteur de disque.

Lorsque j'essaie un lien logiciel, je reçois le problème qui, pour une raison quelconque, ne modifie pas le contenu du lien dans le fichier ciblé.

Je vous remercie!

Sandro
la source
Que diriez-vous _vimrcde la destination au lieu de .vimrc?
ulidtko
Pas une réponse, mais vous trouverez de bonnes informations ici, schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html .
therube

Réponses:

21

Un lien dur est une fonctionnalité de système de fichiers qui ne peut pas traverser une frontière de système de fichiers. Vous ne pouvez pas lier en dur des fichiers sur C: à D: car ce sont des systèmes de fichiers distincts. Ils peuvent chacun contenir le même type de système de fichiers (par exemple NTFS) mais ce sont des systèmes de fichiers distincts.

Mike Fitzpatrick
la source
Je pense que s / différent / séparé / serait plus approprié.
user1686
@grawity: Oui, d'accord. Donc édité.
Mike Fitzpatrick
Avez-vous des idées sur la façon de contourner ce problème?
Sandro
Vous pouvez migrer votre profil utilisateur Windows 7 (ou simplement le dossier Mes documents) vers le lecteur D, puis les liens physiques fonctionneront. Si vous faites cela, assurez-vous que vous utilisez les méthodes appropriées dans Windows 7 (généralement via les onglets des propriétés) - ne déplacez pas manuellement les dossiers de C: vers D:
Mike Fitzpatrick
Le seul cas où un lien dur entre C: et D: fonctionnera est quand ils sont sur le même système de fichiers, par exemple subst D: C:\utils(bien sûr, créé en utilisant Registry pour rendre cela substpersistant).
miroxlav
3

Si ses fenêtres 7, vous pouvez utiliser des liens symboliques - steammover fait exactement cela

Compagnon Geek
la source
En quoi est-ce différent de ce que je fais maintenant? Je suppose que je peux l'essayer :)
Sandro
les liens symboliques fonctionnent entre les répertoires, ce qui n'est pas le cas pour bon nombre des anciennes options liées aux jonctions. De plus, comme il y a un frontal soigné, qui vous indique la commande, il est plus facile de déterminer ce qui est fait. J'utilise principalement XP, donc je ne sais pas si c'est «mieux» mais d'après ce que j'ai lu, il devrait faire le travail que vous en avez besoin avec le moins de bruit possible
Journeyman Geek
2
@Sandro: Détails techniques: deux liens physiques pointent vers le même inode (sous Unix; très similaire dans NTFS de Windows cependant), qui ne fonctionne que dans un seul système de fichiers. Deux liens physiques sont complètement identiques; il n'y a pas "d'origine". Un lien symbolique, d'autre part, pointe vers un chemin , qui peut être n'importe quel texte en fait.
user1686
Si c'est ainsi que fonctionnent les liens symboliques, comment se fait-il que lorsque j'apporte une modification à un fichier, l'autre n'affiche pas les modifications?
Sandro
-3

Essaye ça:

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

Je suppose que cela a quelque chose à voir avec le nom de fichier de la cible. Essayez d'utiliser des guillemets autour du lien cible.

Je pense que votre lien doit également être un chemin complet.


la source
J'ai essayé ça et toujours rien. Merci pour l'idée!
Sandro
C'est probablement le nom de point de la cible. Cela fonctionne-t-il pour d'autres fichiers?