我需要将文件链接到C:\Windows\System32\drivers\etc\hosts
ln -s
我该如何在 Windows 上做到这一点? Windows 中是否有类似或等效的软链接?
答案1
您正在寻找命令“mklink”(cmd)或“New-Item”命令(powershell)。
- 命令:
取自链接的示例:
// To create a symbolic link named MyDocs from the root directory to the \Users\User1\Documents directory, type:
mklink /d \MyDocs \Users\User1\Documents
- 电源外壳:
文档和示例微软文档. 在页面上搜索符号链接。
来自链接的示例:
$link = New-Item -ItemType SymbolicLink -Path .\link -Target\Notice.txt
$link | Select-Object LinkType, Target
LinkType Target
-------- ------
SymbolicLink {.\Notice.txt}
答案2
可能还有其他方法,但我熟悉的是 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.
答案3
电源外壳
只要微软建议使用电源外壳作为 5 年前的命令解释器,并且cmd.exe
正在成为遗留应用程序,这个问题在 Powershell 中缺少答案:
New-Item -path ~\Desktop\hosts -itemType SymbolicLink -target c:\Windows\System32\Drivers\etc\hosts
从 Powershell v5.0 开始有效
答案4
正如@inf所说,链接是 Vista 及以上版本的解决方案。
对于 2000/XP,您可以使用fsutil 硬链接。请注意,与 mklink 不同,硬链接不能跨驱动器起作用。