Linux 链接类型详解:硬链接与软链接
![Linux 链接类型详解:硬链接与软链接](https://static001.geekbang.org/infoq/67/67d6e66b4039fc0d83081b2cb78ca158.png)
Linux 链接类型详解
在 Linux 系统中,存在两种主要的链接类型:硬链接(Hard Link)和软链接(符号链接,Symbolic Link)。这两种链接方式在文件系统中的作用和实现方式有所不同。
1. 硬链接(Hard Link)
硬链接可以将其理解为一个指向原始文件 inode 的指针,系统不会为它分配独立的 inode 和文件数据。原始文件和硬链接文件实际上是同一个文件,只是名字不同。
特点:
硬链接与原始文件共享同一个 inode。
每创建一个硬链接,该文件的 inode 链接数就会增加 1。
只有当文件的 inode 链接数为 0 时,文件才会被删除。
硬链接可以理解为文件副本,但不占用额外的硬盘空间。
硬链接不能跨文件系统创建。
不能为目录创建硬链接。
示例操作:在 CentOS 中,创建硬链接的命令为 ln
。
上述操作中,删除 original.txt
文件后,通过 hardlink.txt
仍然可以访问到原始文件的内容。
2. 软链接(符号链接,Symbolic Link)
软链接是一个包含所链接文件路径名的特殊文件,因此它能够链接目录文件,也可以跨文件系统进行链接。
特点:
软链接存储的是指向原始文件路径的字符串。
软链接可以对不存在的文件名进行链接。
软链接可以跨文件系统进行链接。
软链接可以链接目录。
当原始文件被删除后,软链接将失效。
示例操作:在 CentOS 中,创建软链接的命令为 ln -s
。
上述操作中,删除 source.txt
文件后,symlink.txt
链接失效,无法再访问原始文件的内容。
3. 链接命令详解
使用 ln
命令可以为文件创建一个链接。链接类型分为硬链接和软链接,默认的链接类型是硬链接。
硬链接:
ln source target # 创建硬链接
软链接:
ln -s source target # 创建软链接
4. 举例说明
为了更好地理解软链接和硬链接的不同特质,我们创建一个类似于 Windows 系统中快捷方式的软链接。
接下来对一个原始文件创建一个硬链接:
在上述示例中,删除 readme.txt
后,硬链接 readit.txt
仍然可以访问原始文件的内容,而软链接则不能。
作为开发者,我们需要保持好奇心和学习热情,不断探索新的技术,只有这样,我们才能在这个快速发展的时代中立于不败之地。介绍一款程序员都应该知道的软件JNPF快速开发平台,很多人都尝试用过它,它是功能的集大成者,任何信息化系统都可以基于它开发出来。
JNPF 可以实现应用从创建、配置、开发、测试到发布、运维、升级等完整生命周期的管理。减少了传统应用程序的代码编写量,通过图形化、可视化的界面,以拖放组件的方式,即可快速生成应用程序的产品,大幅降低了开发企业管理类软件的难度。
当然,我更建议大家成为一个全栈,不要把自己的定位局限于前端。
感谢阅读本文
如果有什么建议,请在评论中让我知道。我很乐意改进。
评论