软链接和硬链接
本文最后更新于 2024年11月5日 晚上
1. 定义
- 软链接:软链接(也称为符号链接)是一种特殊的文件,它存储了目标文件或目录的路径信息。软链接可以跨文件系统,也可以指向目录。
- 硬链接:硬链接是同一个文件的多个名称,它们指向同一个 inode 节点。硬链接不能跨文件系统,也不能指向目录。
2. 创建方法
Windows 中 链接名在前,目标文件在后
Linux 中 连接名灾后,目标文件在前
2.1. Windows
环境:命令提示符 (cmd) 或 PowerShell
mklink | Microsoft Learn: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/mklink
1 |
|
查看文件的硬链接
hardlink - How can I find hard links on Windows? - Super User: https://superuser.com/questions/366739/how-can-i-find-hard-links-on-windows
fsutil hardlink | Microsoft Learn: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-hardlink
1 |
|
2.2. Linux
环境:shell
1 |
|
查看目录内的硬链接
1 |
|
查看目录内的软链接
1 |
|
3. 区别
- 跨文件系统:软链接可以跨文件系统,而硬链接不可以。
- 指向目录:软链接可以指向目录,而硬链接不可以。
- 指向不存在的文件:软链接可以指向不存在的文件,而硬链接必须指向已存在的文件。
4. 优势
- 软链接:软链接可以跨文件系统,也可以指向目录。它更灵活,更容易管理。
- 硬链接:硬链接可以让您为同一个文件创建多个名称,而不需要占用额外的磁盘空间。它还可以保护文件免受意外删除(必须所有硬链接删除后原始文件才会删除)。
5. 补充说明
不能跨文件系统的含义是指硬链接只能在同一个文件系统中创建,不能在不同的文件系统中创建。(狭义上的同一文件系统,)
文件系统是用于存储和组织文件的一种数据结构,它定义了文件如何存储在磁盘上以及如何访问这些文件。常见的文件系统包括 NTFS、FAT32、ext4 等。
如果您有一个文件,它有两个硬链接,那么这两个硬链接必须位于同一个文件系统中。如果您将这两个硬链接复制到另一个文件系统中,那么它们将变成两个单独的文件,而不再是硬链接。
举个例子,假设您有一个名为 file1
的文件,它位于 /home/user/documents
目录中。您可以在该目录中为该文件创建一个硬链接,命名为 file2
。此时,file1
和 file2
都指向同一个文件,它们共享相同的内容。
1 |
|
但是,如果您将 file2
复制到另一个文件系统中(例如从本地磁盘复制到 U 盘),那么 file2
将变成一个单独的文件,而不再是 file1
的硬链接。
1 |
|
6. 扩展
- 符号链接、硬链接及其在 Windows 上的应用举例 - 少数派: https://sspai.com/post/66834
- 尝试过
Link Shell Extension
但是会和 PowerToy 冲突,所以放弃了
本文部分内容改编自与 Microsoft Bing 的对话。