Windows 中的软链接和硬链接

admin 2025年5月7日09:07:01评论6 views字数 1558阅读5分11秒阅读模式
前两天看到读者留言说windows下有个命令mklink可以试试。这个命令我之前的确没用过,试过之后发现原来windows下也有软链接和硬链接之分。
Linux 中的软链接使用的比较多,一般当成快捷方式用、特别是比较深的目录。
创建软链接可以方便 cd 到不同目录,同时也不会造成误解,软链接在显示上会高亮比较明显。删除软链接也不会造成任何不好的后果,并且是可追溯的,可以查看软链接指向的目录或文件。
硬链接一般情况不要使用,因为它无法追溯。你修改了一个硬链接的文件内容,同时会影响的所以指向该文件的硬链接。相当于一个文件有不同的文件名,但它们都指向同一个文件,并且还很难查看它们直接的关系。没有一张图会告诉你哪些文件是相互关联的。
软链接可以随便用,硬链接最好做了登记后再用,不然会造成意外后果。软链接可以用于文件或目录,硬链接只能用于文件不能用于目录,且无法跨文件系统。
Windows 下的软链接和硬链接与Linux类似,但大家用的很少。因为图形界面操作一般使用快捷方式就够了。
Windows 中的软链接和硬链接
但快捷方式实际上是个二进制文件(*.link),它只能被图形化管理工具读取。
Windows 中的软链接和硬链接
软连接一般用于命令行或脚本中,快捷方式对命令行环境没有帮助。
Windows 下可以使用 mklnk 命令创建软链接。它的帮助文档为:
C:UsersAdministrator>mklink /?创建符号链接MKLINK [[/D] | [/H] | [/J]] Link Target        /D      创建目录符号链接。默认为文件                符号链接。        /H      创建硬链接而非符号链接。        /J      创建目录联接。        Link    指定新的符号链接名称。        Target  指定新链接引用的路径                (相对或绝对)。C:UsersAdministrator>
例子:
mklink /d gitrepo d:gitRepo
Windows 中的软链接和硬链接
在 windows 图形界面下软链接看起来像一个快捷方式:
Windows 中的软链接和硬链接
但在文件上它们属于不同的文件,快捷方式在文件上是个二进制文件,软链接不是。我创建了一个快捷方式和一个软链接,两个文件放一起可以比较一下。
Windows 中的软链接和硬链接
mklink 有三个选项:
  • /d 创建软链接
  • /h 创建硬链接
  • /j  创建软链接(早期实现)
我们使用 /d 和 /h 就行了,/d 可以指向文件和目录,/h 只能指向文件且限定盘符只有在一个盘才能用和 linux 的规则一致。
Windows 中的软链接和硬链接
/j 在文档上与 /d 有区别,但实际测试没有分别,它是 windows 早期版本的一种实现,在 win10的行为 上与 /d 表现一致可以不用记。
mklink 创建的软链接在 git-bash 中也能用,但 mklink 只能在 cmd 中使用。原因是 mklink 不是一个可执行文件,使用 where 和 everything 是找不到实体文件的。它和 cmd 中的 cd、type 命令有点像,类似 shell 中的内置函数。
Windows 中的软链接和硬链接
推荐使用软链接,尽量不用硬链接。软链接基本搞清楚了,那如何在命令行创建快捷方式?DeepSeek 给出了一种实现:
先创建一个 vb 脚本:
$ cat /c/bin/CreateShortcut.vbsSet ws = WScript.CreateObject("WScript.Shell")Set sc = ws.CreateShortcut(WScript.Arguments(0))sc.TargetPath = WScript.Arguments(1)sc.Save
然后在包一层 bat :
cat /c/bin/myln.batcscript //nologo "c:binCreateShortcut.vbs"  "%1" "%2"
使用时如下:
c:binmyln.bat "快捷方式.lnk" d:gitRepo
Windows 中的软链接和硬链接
实测可用:
Windows 中的软链接和硬链接
全文完。

原文始发于微信公众号(生有可恋):Windows 中的软链接和硬链接

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月7日09:07:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows 中的软链接和硬链接https://cn-sec.com/archives/4035924.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息