J'ai besoin de lier un fichier à C:\Windows\System32\drivers\etc\hosts
Comment puis-je faire cela avec Windows? Existe-t-il un lien symbolique tel que ln -s
ou équivalent dans Windows?
Vous recherchez la commande "mklink".
Documentation et exemples dans Microsoft Docs ou ss64.com .
Exemple tiré du lien:
// To create a symbolic link named MyDocs from the root directory to the \Users\User1\Documents directory, type:
mklink /d \MyDocs \Users\User1\Documents
Il y a peut-être d'autres moyens, mais celui que je connais bien est mklink:
C:\>mklink
Creates a symbolic link.
MKLINK [[/D] | [/H] | [/J]] Link Target
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
Il y a jonctions mais je ne sais pas si cela fera exactement ce dont vous avez besoin.
edit - oops désolé, la jonction ne s'applique qu'aux répertoires et non aux fichiers
Link Shell Extension peut créer un lien symbolique (entre autres). Belle intégration du menu contextuel. Disponible pour les versions Windows les plus récentes et fréquemment mises à jour.
Comme @inf le dit, mklink est la solution pour Vista et les versions ultérieures.
Pour 2000/XP, vous pouvez utiliser fsutil hardlink . Notez que, contrairement à mklink, les liaisons physiques ne fonctionnent pas sur tous les lecteurs.
Tant que Microsoft conseille d'utiliser powershell comme interprète de commande depuis plus de 5 ans et que cmd.exe
est en train de devenir une application héritée, cette question manque de réponse dans Powershell :
New-Item -path ~\Desktop\hosts -itemType SymbolicLink -target c:\Windows\System32\Drivers\etc\hosts
Cela fonctionne à partir de Powershell v5.0