(1)软链接(symbolic link)
创建命令:
ln -s <target> <link_name>
其中:
<target> 是目标文件或目录的路径,可以是相对路径或绝对路径。
<link_name> 是要创建的软链接的名称,可以是相对路径或绝对路径。
特点:笔试面试填空题和简答题:软链接的特点
文件指向: 软链接是一个特殊类型的文件,它包含了指向另一个文件或目录的路径名。
大小和权限: 软链接本身的大小很小,只是一个包含路径的文本文件,不占用目标文件的inode。软链接有自己的权限设置。
更新和删除: 如果原始文件被删除或者移动,软链接仍然存在,但是指向的路径失效,称为“损坏的软链接”。
跨文件系统: 软链接可以跨越文件系统,可以链接到任何地方(但是关于系统兼容西有可能无法查看文本中的数据),甚至是不存在的路径。
软链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效
软链接本身的大小很小,只保存指向源文件的路径,不保存文本数据
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703183910755-627069582.png)
软链接,使用软链接查看文本数据,其实就查看源文件的数据,是同一份数据,不管修改那个文件,数据都会实时更新
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703183933143-1469253648.png)
软连接可以跨文件系统,但是关于系统兼容西有可能无法查看文本中的数据
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184041127-1960011772.png)
把软链接跨文件系统拷贝,还是支持正常链接查看源文件
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184111623-1793662963.png)
软连接的权限是自己独立设置的和源文件无关
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184122959-1276184060.png)
源文件被移动或者删除,软链接会实现,变成"损坏的软链接"
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184135957-1091395076.png)
(2)硬链接(Hard link)
创建命令:
ln source_file target_link
其中:
source_file 是现有文件的路径,即要创建硬链接的源文件。
target_link 是新硬链接文件的路径或文件名。
特点:
inode链接: 硬链接是指向文件 inode 的指针,实际上是文件系统中相同的文件,只是有多个文件名指向它。
没有单独的权限: 硬链接与原始文件共享相同的 inode 和权限设置,因此无法单独设置权限。
文件系统内部: 硬链接只能在同一个文件系统内创建,不能跨越文件系统创建。
硬链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效
删除和文件计数: 只有当所有硬链接都被删除时,文件的数据块和 inode 才会被释放。
硬链接文件和源文件的大小一样大,硬链接就是完全拷贝源文件的数据
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184202002-532874729.png)
硬链接也一样,不管是修改源文件,还是硬链接文件,数据都是同步更新
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184217173-1050349004.png)
没有单独的权限: 硬链接与原始文件共享相同的 inode 和权限设置
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184230812-1243554356.png)
硬链接文件的计数器
计数器:计数文件公有几个硬链接,又因为硬链接的特点是保存了文本数据,所以源文件也是本身的硬链接 所以文件的硬链接个数至少为1,如果是0,文件就是被彻底删除
删除源文件,硬链接还是能正常使用,因为它本身不经保存源文件的路径也保存了文件的数据
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184249108-948971836.png)
硬链接能重复创建硬链接,而且计数器+1
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184316831-1384592987.png)
硬链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效
![image](https://img2024.cnblogs.com/blog/3432073/202407/3432073-20240703184331584-578052011.png)
(3)inode
inode(index node 索引节点的缩写)是Linux文件系统中用来存储有关文件或目录的元数据信息的数据结构(结构体)。
每个文件或目录都有一个唯一的 inode,它包含了文件或目录的元数据信息如下:
文件类型和权限:例如,文件是普通文件、目录、符号链接等的类型,以及文件的读写执行权限。
文件创建者和所属组:即文件的所有者和所属组的用户和组ID。
文件的大小:以字节为单位的文件大小。
文件数据的存储位置:如果文件较小,inode 直接包含文件的数据;如果文件较大,inode 包含指向数据块的指针。
时间戳:包括文件的创建时间、最后访问时间和最后修改时间。
硬链接计数:指向该 inode 的硬链接数目。