mklink创建符号链接和硬链接
- 1.创建符号链接
- 1.1 目录符号链接
- 1.2 文件符号链接
- 2.创建硬链接
- 3.区别
- 3.1 符号链接(Symbolic Link)
- 3.2 硬链接(Hard Link)
mklink
是Windows中用于创建符号链接(symbolic links)和硬链接(hard links)的命令。符号链接允许你在文件系统中创建指向另一个文件或目录的链接,而硬链接则允许你创建指向相同物理数据的多个文件项。以下是
mklink
的基本使用方法:
1.创建符号链接
mklink /d <目标符号链接> <目标路径>
/d
参数表示创建目录符号链接,如果要创建文件符号链接,可以省略该参数。<目标符号链接>
是你希望创建的符号链接的路径和名称。【命令创建,不能存在】<目标路径>
是符号链接指向的目标文件或目录的路径。【自行创建,必须存在】
1.1 目录符号链接
这将在 C:\ 目录下创建一个名为 LinkToFolder 的目录符号链接,它指向 C:\TargetFolder。
mklink /d C:\LinkToFolder C:\TargetFolder
目标路径不存在,会报错:
创建目录符号链接的作用:
- 类似于快捷方式;
- 目标路径可指向其他磁盘,将文件保存到空间较多的磁盘。
1.2 文件符号链接
mklink filepdf C:\file.pdf
文件符号链接的目标文件可以为空,文件符号链接的作用:
- 类似于快捷方式;
- 目标文件可存储到其他磁盘。
2.创建硬链接
mklink /h <目标硬链接> <目标文件>
/h
参数表示创建硬链接。<目标硬链接>
是你希望创建的硬链接的路径和名称。【命令创建,不能存在】<目标文件>
是硬链接指向的目标文件的路径。【自行创建,必须存在】
mklink /h C:\LinkToFile.txt C:\TargetFile.txt
这将在 C:\
目录下创建一个名为 LinkToFile.txt
的硬链接,它指向 C:\TargetFile.txt
。
# 不能创建到其他磁盘
mklink /h C:\LinkToFile.txt D:\TargetFile.txt
3.区别
3.1 符号链接(Symbolic Link)
- 类型:符号链接是一种特殊类型的文件,它包含了指向另一文件或目录的路径名的引用。
- 跨文件系统:符号链接可以跨不同的文件系统进行链接,即它们可以指向其他分区或存储设备上的文件或目录。
- 语义:符号链接在操作时会有些类似快捷方式,对符号链接的大部分操作都会被转发到目标文件或目录。
- 权限:如果用户没有访问目标文件或目录的权限,对符号链接的操作可能会失败。
3.2 硬链接(Hard Link)
- 类型:硬链接直接指向文件所在的磁盘数据块,它创建的是文件数据的直接引用。
- 限制:硬链接不能跨卷(即不能跨不同的文件系统),也不能链接到目录,只能在同一文件系统内对文件进行链接。
- 可靠性:由于硬链接直接指向文件的数据块,即使原始文件被删除,只要硬链接存在,数据就不会丢失。这意味着文件的真正删除需要删除所有指向它的硬链接。
- 权限和空间:硬链接不会占用额外的磁盘空间,且不需要特殊的权限即可创建(只要有足够的文件系统权限)。
总结来说,符号链接更像是一个独立的文件,它有自己的inode和权限设置,而硬链接则更像是对文件的一个别名,更底层且更依赖于文件系统的结构。在选择使用哪种链接时,通常取决于具体的应用场景和需求。