【Linux】软连接/符号链接和硬链接

本文介绍了Linux中硬链接和软链接的基本原理及优缺点。硬链接只能对已存在文件创建,不能跨文件系统,无法对目录操作,但能防止误删原文件。而软链接则无这些限制,可指向不存在的文件或目录,可交叉系统创建,但若原文件被删除,链接会变成死链接。通过实践Linux命令,读者可以更深入地理解这两种链接方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬链接和软链接的原理:(软链接又叫符号链接)

 

通过优缺点来认识硬链接

硬链接的优点是:当用户误删原文件时,硬链接还能找到存储在磁盘的数据,可以作为新的原文件继续使用,适用于系统文件的链接;一个硬链接占用的空间很小

硬链接的缺点是:只能对已经存在的文件进行创建,不能交叉文件系统创建,不能对目录创建。

通过优缺点来认识软连接/符号链接

软链接的优点是:没有类似硬链接的诸多限制,可以有自己的文件属性和权限,可对不存在的文件或目录进行创建,可对文件或目录进行创建,可交叉系统创建。

软链接的缺点是:若指向的原文件被删除,则相关软连接成为死链接;占用的空间较大

通过Linux命令练习来加深对软硬链接的理解:

### Linux 链接硬链接的概念 在Linux系统中,存在两种类型的链接链接符号链接硬链接。这两种链接提供了不同的方式来创建指向文件或目录的新入口。 #### 符号链接 (Soft Link) 符号链接也称为链接,是一种特殊的文件类型,其内部存储的是目标文件的路径名而不是数据本身。通过这种方式,可以实现跨不同文件系统的链接[^1]。 对于符号链接而言,如果源文件被移动到另一个位置,则该链接将会失效,因为它依赖于原始路径的存在。此外,创建符号链接会占用少量额外空间用于记录路径信息[^2]。 ```bash ln -s /path/to/original/file.txt /path/to/symlink/link.txt ``` 此命令将在`/path/to/symlink/`下创建名为`link.txt`的符号链接,指向位于`/path/to/original/`下的实际文件`file.txt`。 #### 硬链接 (Hard Link) 相比之下,硬链接并不包含任何有关目标文件的信息;相反,它直接共享同一份inode的数据结构。这意味着多个名称可以通过各自的硬链接访问相同的内容而不必担心其中一个删除后影响其它副本。然而,由于所有这些名字都关联着同一个物理实体,在修改任何一个实例时都会反映在整个集合上。 值得注意的是,无法为目录创建硬链接,除非是在相同的文件系统内操作,并且通常只有超级用户才有权限这样做。另外,当原文件被重命名或移走之后,现有的硬链接仍然有效并能正常工作,因为它们实际上是指向磁盘上的具体位置而非相对路径。 ```bash ln /path/to/existing_file.txt /another/path/hard_link_to_existing_file.txt ``` 上述指令会在指定的位置生成一个新的硬链接至已存在的文件。 --- 为了更好地理解这两者之间的差异,下面提供了一个简单的图示说明: ![链接 vs 硬链接](https://i.imgur.com/WZzXjKp.png) 在这个图表里: - 文件A拥有两个独立的硬链接BC; - D是一个指向文件E的符号链接(Soft link),假设此时将E改名成F,则D将不再能够成功解析到对应的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值