(1)软链接(symbolic link)
创建命令:
ln -s <target> <link_name>
其中:
<target> 是目标文件或目录的路径,可以是相对路径或绝对路径。
<link_name> 是要创建的软链接的名称,可以是相对路径或绝对路径。
特点:笔试面试填空题和简答题:软链接的特点
文件指向: 软链接是一个特殊类型的文件,它包含了指向另一个文件或目录的路径名。
大小和权限: 软链接本身的大小很小,只是一个包含路径的文本文件,不占用目标文件的inode。软链接有自己的权限设置。
更新和删除: 如果原始文件被删除或者移动,软链接仍然存在,但是指向的路径失效,称为“损坏的软链接”。
跨文件系统: 软链接可以跨越文件系统,可以链接到任何地方(但是关于系统兼容西有可能无法查看文本中的数据),甚至是不存在的路径。
软链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效
软链接本身的大小很小,只保存指向源文件的路径,不保存文本数据

软链接,使用软链接查看文本数据,其实就查看源文件的数据,是同一份数据,不管修改那个文件,数据都会实时更新

软连接可以跨文件系统,但是关于系统兼容西有可能无法查看文本中的数据

把软链接跨文件系统拷贝,还是支持正常链接查看源文件

软连接的权限是自己独立设置的和源文件无关

源文件被移动或者删除,软链接会实现,变成"损坏的软链接"

(2)硬链接(Hard link)
创建命令:
ln source_file target_link
其中:
source_file 是现有文件的路径,即要创建硬链接的源文件。
target_link 是新硬链接文件的路径或文件名。
特点:
inode链接: 硬链接是指向文件 inode 的指针,实际上是文件系统中相同的文件,只是有多个文件名指向它。
没有单独的权限: 硬链接与原始文件共享相同的 inode 和权限设置,因此无法单独设置权限。
文件系统内部: 硬链接只能在同一个文件系统内创建,不能跨越文件系统创建。
硬链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效
删除和文件计数: 只有当所有硬链接都被删除时,文件的数据块和 inode 才会被释放。
硬链接文件和源文件的大小一样大,硬链接就是完全拷贝源文件的数据

硬链接也一样,不管是修改源文件,还是硬链接文件,数据都是同步更新

没有单独的权限: 硬链接与原始文件共享相同的 inode 和权限设置

硬链接文件的计数器
计数器:计数文件公有几个硬链接,又因为硬链接的特点是保存了文本数据,所以源文件也是本身的硬链接 所以文件的硬链接个数至少为1,如果是0,文件就是被彻底删除
删除源文件,硬链接还是能正常使用,因为它本身不经保存源文件的路径也保存了文件的数据

硬链接能重复创建硬链接,而且计数器+1

硬链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效

(3)inode
inode(index node 索引节点的缩写)是Linux文件系统中用来存储有关文件或目录的元数据信息的数据结构(结构体)。
每个文件或目录都有一个唯一的 inode,它包含了文件或目录的元数据信息如下:
文件类型和权限:例如,文件是普通文件、目录、符号链接等的类型,以及文件的读写执行权限。
文件创建者和所属组:即文件的所有者和所属组的用户和组ID。
文件的大小:以字节为单位的文件大小。
文件数据的存储位置:如果文件较小,inode 直接包含文件的数据;如果文件较大,inode 包含指向数据块的指针。
时间戳:包括文件的创建时间、最后访问时间和最后修改时间。
硬链接计数:指向该 inode 的硬链接数目。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!