web-dev-qa-db-fra.com

Est-ce que Windows a le ln -s ou équivalent?

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?

37
prosseek

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
37
inf.ig.sh

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.
15
Matthew S

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

3
Martin Beckett

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.

2
Francois

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.

2
studgeek

Powershell

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

1
maoizm