一、硬链接
1、指令格式
ln sourcefile targetfile
例:
[root@root: ~/Desktop/file]$touch test_link_source
[root@root: ~/Desktop/file]$ll
total 0
-rw-r--r--. 1 root root 0 Dec 26 01:53 test_link_source
[root@root: ~/Desktop/file]$ln test_link_source test_link_target_hard ⭐
[root@root: ~/Desktop/file]$ll
total 0
-rw-r--r--. 2 root root 0 Dec 26 01:53 test_link_source
-rw-r--r--. 2 root root 0 Dec 26 01:53 test_link_target_hard
2、硬连接的性质
-
每一个新的文件的创建都以创建一个硬链接为开始,即创建一个指向数据的名称。创建一个新的硬链接的过程相当于创建一个新的文件名指向同一数据,新的硬链接与原始文件名的作用完全相同,文件的绝对路径数加1:
-
指向同一数据的硬链接的索引节点编号相同:
-
指向同一数据的硬链接的文件属性相同:
-
修改任一引用同一数据的硬链接文件的权限,所有的硬链接文件的权限同步修改:
-
修改任一引用同一数据的硬链接文件中的内容,所有的硬链接文件中的内容同步修改:
3、硬链接的优势
- 即使原始文件被删除,只要存在至少一个硬链接,该文件的内容就依然可用,只有删除了最后一个硬链接时,才会将数据从存储中删除,因此硬链接在具体使用中常用于重要文件的备份。
4、硬链接的局限性
- 首先,硬链接只能用于常规文件,不能用来创建执行目录或特殊文件的硬链接。
- 其次,只有当两个文件都位于同一文件系统上时,才能使用硬链接。
二、软链接
1、指令格式
ln -s sourcefile targetfile
例:
[root@root: ~/Desktop/file]$touch test_link_source
[root@root: ~/Desktop/file]$ll
total 0
-rw-r--r--. 1 root root 0 Dec 26 01:56 test_link_source
[root@root: ~/Desktop/file]$ln -s test_link_source test_link_target_soft ⭐
[root@root: ~/Desktop/file]$ll
total 0
-rw-r--r--. 1 root root 0 Dec 26 01:56 test_link_source
lrwxrwxrwx. 1 root root 16 Dec 26 01:57 test_link_target_soft -> test_link_source
2、软链接的性质
- 创建一个新的软链接相当于创建一个新的索引节点编号:
- 创建一个新的软链接会获得一个全权限的新文件,并且长列表的第一个字符会标记为l,以标记这是一个软链接:
- 修改sourcefile的文件权限不会导致targetfile的文件权限改变,但修改targetfile的文件权限实际上修改的是sourcefile的文件权限,而targetfile的文件权限不会改变:
- 修改sourcefile的文件内容targetfile的文件内容同步改变,修改targetfile的文件内容sourcefile的文件内容也同步改变:
3、软链接的优势
- 软链接可以链接位于不同文件系统上的两个文件。
- 软链接可以指向目录或特殊文件,而不仅限于常规文件。
4、软链接的局限性
- 当原始常规文件被删除后,软链接依然会指向该文件,但目标已消失,指向缺失的文件的软连接被称为“悬挂的软链接”。如果稍后创建了一个与已删除的原始文件同名的新文件,那么软链接将不再悬挂,而是指向此新文件,因此在使用时需谨慎。
三、软链接与硬链接的区别
-
硬链接是将名称指向存储设备上的数据,软连接则是将名称指向另一个名称,再由原始文件指向存储设备上的数据。
-
在原始文件被删除后,如果重新创建同原始文件同名的新文件,软链接则会连接到新文件,但硬链接不会。