Dans le contexte de NTFS:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D
Crée un lien symbolique d'annuaire. La valeur par défaut est un lien symbolique de fichier.
/H
Crée un lien dur au lieu d'un lien symbolique.
/J
Crée une jonction d'annuaire.
Link
spécifie le nouveau nom du lien symbolique.
Target
spécifie le chemin (relatif ou absolu) auquel le nouveau lien fait référence.
Une jonction d’annuaire n’est-elle pas exactement la même chose qu’un lien symbolique d’annuaire ?
Quelle est la différence entre
mklink /D f1 f2
etmklink /J f1 f2
?Puisqu'un "répertoire" n'est en réalité qu'un fichier , quelle serait la différence entre un lien symbolique de répertoire et un lien symbolique de fichier?
windows
filesystems
ntfs
symbolic-link
Pacerier
la source
la source
Réponses:
Une jonction n’est certainement pas la même chose qu’un lien symbolique d’annuaire, bien qu’ils se comportent de la même manière. La principale différence est que, si vous examinez un serveur distant, les jonctions sont traitées sur le serveur et les liens symboliques d’annuaire sur le client . Voir également le commentaire de Matthew sur le fait que cela signifie que des liens symboliques sur le système de fichiers local peuvent pointer vers des systèmes de fichiers distants.
Supposons que sur une machine nommée Alice, vous deviez placer un point de jonction
c:\myjp
et un lien symbolique d'annuairec:\mysymlink
pointant tous deux versc:\targetfolder
. Pendant que vous utilisez Alice, vous ne remarquerez pas beaucoup de différence entre eux. Mais si vous utilisez une autre machine nommée Bob, le point de jonction\\Alice\c$\myjp
pointera vers\\Alice\c$\targetfolder
mais le lien symbolique
\\Alice\c$\mysymlink
pointera vers\\Bob\c$\targetfolder
(Mise en garde: par défaut, le système ne suit pas les liens symboliques sur les volumes distants. Par conséquent, dans la plupart des cas, le deuxième exemple aboutit à "Fichier introuvable" ou "Le lien symbolique ne peut pas être suivi car son type est désactivé." )
La différence entre un lien symbolique de répertoire et un lien symbolique de fichier est simplement que l'un représente un répertoire et l'autre un fichier. Dans la mesure où la cible du lien n'a pas besoin d'exister lors de la création du lien, le système de fichiers doit savoir s'il faut indiquer aux applications qu'il s'agit ou non d'un répertoire.
Il convient également de noter que la création d'un lien symbolique nécessite des privilèges spéciaux (par défaut, disponible uniquement pour les processus élevés), tandis que la création d'une jonction nécessite uniquement un accès au système de fichiers.
la source
C:\testlink
(qui pointeC:\test
sur mon ordinateur) et que quelqu'un accède à distance à mon ordinateur et clique dessusC:\testlink
, cela résoudrait le problèmeC:\test
sur son ordinateur, Alors que si je crée une jonction de répertoireC:\testlink
(qui pointeC:\test
sur mon ordinateur), et une personne à distance accède à mon ordinateur et clique dessusC:\testlink
) cela le mènerait-il auC:\test
sur mon ordinateur? Ou est-ce que je l'ai mal compris?C:\MyNetworkShare
qui pointe\\Alice\Share
également?Les conversations complexes font mal au cerveau - j'aime les graphiques:
Supposons que tout
MyLink
soit un lien symbolique et que toutMyJunc
est une jonction pointée versTarget as created
.par exemple
mklink /D MyLink C:\T_Dir
pour créer un lien symbolique vers le répertoire ciblemklink /J MyJunc C:\T_Dir
pour créer une jonction de répertoire dans le répertoire cibleOù la syntaxe est la même
mklink [/J,/D] [link path] [target path]
que sur la machine localeError * 1 - Si vous avez débloqué l'accès aux liens symboliques distants sur votre ordinateur local, cela fonctionnerait .. mais uniquement sur l'ordinateur local où il est débloqué
la source
d:\_tmp\data
. Créer un lien comme ceci:d:\_tmp>mklink /d data-link data
. L'utilisateur distant a un accès complet àd:\_tmp
tous ses sous-dossiers, MAIS il ne pourra toujours pas ouvrird:\_tmp\data-link
.Complex talk hurts brain -- I like charts
J'aime cette phrase et le tableau aussi.Les liens symboliques ont plus de fonctionnalités, alors que les jonctions semblent presque être une fonctionnalité héritée en raison de leurs limitations, mais les implications de ces limitations pour la sécurité sont précisément la raison pour laquelle une jonction pourrait être préférée à un lien symbolique. Le ciblage distant rend les liens symboliques plus fonctionnels, mais augmente également leur profil de sécurité, tandis que les jonctions peuvent être considérées comme plus sûres car elles sont contraintes aux chemins locaux . Donc, si vous voulez un lien local et pouvez vivre avec un chemin absolu, vous êtes probablement mieux avec une jonction; sinon, considérons un lien symbolique pour ses capacités supplémentaires.
** L’affirmation de la différence de vitesse / complexité provient d’une affirmation non vérifiée dans l’entrée Wikipedia sur les points d’analyse NTFS (une bonne lecture). *
Autres comparaisons de liens NTFS
Voici quelques autres comparaisons sur le sujet, mais elles peuvent être trompeuses lorsque vous envisagez des jonctions car elles ne répertorient pas les avantages énumérés ci-dessus.
Tiré d'ici (une bonne lecture d'introduction)
À partir de la page SS64 sur MKLink
Commentaires sur Terminology
Les jonctions sont des liens symboliques
Les jonctions et les liens symboliques font réellement la même chose de la même manière (points d'analyse), mis à part les différences susmentionnées dans leur traitement. En fait, techniquement, une jonction est un lien symbolique et la documentation peut parfois appeler une jonction un lien symbolique, comme c'est le cas ici . Donc, c'est juste quelque chose à savoir concernant la terminologie.
NTFS
Même si le PO le spécifie, il convient de souligner que "lien symbolique" est un terme très général qui n'est pas spécifique à NTFS. Donc, pour être précis, cette comparaison concerne les jonctions NTFS par rapport aux liens symboliques NTFS.
la source