Linux--软链接,硬链接
在 Linux 和类 Unix 系统中,软链接(符号链接)和硬链接是用于文件系统中引用文件的两种方式。它们各自有不同的特点和用途。
| 软链接(符号链接) | 硬链接 | |
| 定义 | 软链接是一个文件或目录,指向另一个文件或目录的特殊文件,包含指向目标文件路径的文本信息 | 硬链接是指向文件系统中同一文件的另一个目录项。两个或多个硬链接指向同一个文件数据块 |
| 可否跨文件系统 | 可跨文件系统 | 不能跨文件系统 |
| 删除数据 | 软链接与原始文件是独立的,如果原始文件被删除,软链接将变为“断链”,无法访问 | 所有硬链接都指向相同的数据块,文件的内容不会因删除某个链接而丢失,只有在所有链接都被删除后,数据才会被释放 |
| 能否链接目录 | 软链接可以指向目录,也可以指向文件 | 硬链接不能为目录(除非是超级用户),只能为文件 |
| 磁盘空间使用 | 软链接是一个独立的文件,通常,软链接本身占用的磁盘空间非常小(一般为几十字节),但它不包含原始文件的数据 | 硬链接指向同一个物理数据块,不会占用额外的磁盘空间。每创建一个硬链接,系统会增加该文件的引用计数,但不会复制数据 |
| 是否创建新的inode | 创建,相当于重新创建一个文件 | 不创建,只给原文件多加一个文件名 |
| 能否修改链接 | 可修改,但需删除并重新创建以更改目标 | 不可修改,指向相同的数据块,可以重新创建一个硬链接 |
| 使用场景 | 常用于创建快捷方式、指向配置文件或在不同位置共享文件的情况 | 用于在文件系统中创建多个指向同一数据块的入口,适合需要共享文件内容的情况 |
| 创建方式 | ln -s 原始路径 目标路径 注:软链时,目标路径的父目录必须存在 | ln /path/to/original /path/to/hardlink |
| 修改属主属组 |
chown test.test /data 修改软链接目标的属主和属组(修改/data链接的原目录的权限) chown -h test.test /data 只修改软链接本身的属主和属组(只修改/data目录的权限) |
chown test.test/data 更改所有硬链接文件的权限 |
实例
1、将/home/symlink1.txt文件,/home/symlink2/目录软链到/目录下
[root@test home]# ln -s /home/symlink1.txt /
[root@test home]# ln -s /home/symlink2/ /

2、将/home/hardlink1.txt硬链至/home/service/var(硬链接到/目录会报错,不同的分区与文件系统)
[root@test home]# ln /home/hardlink1.txt /home/service/var/


浙公网安备 33010602011771号