周顺的技术博客

  • 首页
  • 榜上有名
  • 文章归档
  • 读者排行
  • 豆瓣书影
  • 友情链接
  • DevOps (4)
  • Docker (4)
  • k8s (9)
  • linux (11)
  • Mysql (9)
  • Python (2)
  • Redis (1)
  • Shell (6)
  • 主题 (0)
  • 未分类 (0)

软链接、硬链接的区别

  • xiaoteng
  • 2024-02-13
  • 0

软链接:在实际工作中,使用最多的叫软链接(快捷方式)

链接:link(ln命令)

ln -s  源文件的路径 链接路径

注意事项:链接路径,还是源文件路径必须是绝对路径方式

举个栗子:

ln -s /etc/my.cnf /root/my.conf
ll /root
软链接特点:
① 有颜色的,浅蓝色
② 软链接一般会有 -> 箭头指向
③ 查看权限时,第1列代表文件类型,如果是软链接则类型为l(小写的L)

作用:简化软件访问或文件访问路径(可以是文件也可以是文件夹)

区别:删除源文件,则软链接就无法访问了(失效了)

硬链接:在实际工作中,使用较少,主要用于数据备份、版本控制等功能(理解又复制了一个文件,删除源文件,对硬链接没有任何影响)

作用:实现数据备份

基本语法:

ln  源文件路径  硬链接路径
注意:没有选项,没有-s

举个栗子:

ln /var/log/disk_usage.log /root/disk_usage.log
ls
查看后发现,硬链接文件也是白色的,没有任何颜色的变化
ll
查看后发现,硬链接文件没有箭头指向,文件类型也是普通文件-
从外观和表现上来看,硬链接文件与源文件几乎没有区别
注意:硬链接不同于软链接,硬链接有点类似把文件复制一份,删除源文件对硬链接没有任何影响。硬链接只能针对文件创建,而不能针对文件夹!
实际工作中,硬链接可以使用文件共享,也可以实现数据备份。

inode(索引节点)是文件系统中用来存储文件元数据(metadata)的数据结构。它包含了文件的一些关键信息,如文件的大小、文件的权限、文件的所有者、文件的创建时间、修改时间、以及文件内容的存储位置等,但 不包含文件名。

inode 结构的关键点:

① 文件元数据:inode 存储了文件的所有重要信息,除了文件的名字和实际内容。文件的名字是由目录项(directory entry)来存储的,而 inode 只关心文件的其他属性。

② 数据块的指针:inode 还包含指向文件数据块的指针,这些指针告诉文件系统如何找到存储文件内容的实际位置。

③ 文件类型和权限:它还存储文件类型(普通文件、目录、符号链接等)以及权限信息(谁可以读、写或执行)

在Linux系统中可以通过ls -i来进行查看文件的inode值。

<strong>硬链接:</strong>本质上是多个文件名指向同一个 inode,这意味着这些文件名共享相同的 inode。因此,硬链接不会创建新的文件,它只是为现有的文件创建了一个新的名字。
<strong>关系</strong>:硬链接与原文件共享相同的 inode 编号。删除某个硬链接不会影响文件的内容,只会减少该 inode 的引用计数,直到所有硬链接都被删除,文件的数据块才会被释放。

<strong>软链接</strong> 是一个独立的文件,拥有自己的 inode。软链接存储的是指向目标文件路径的引用,而不是目标文件的 inode 号。因此,软链接与原始文件的 inode 并不相同。
<strong>关系</strong>:软链接的 inode 指向的是一个特殊的文件内容,即它保存了目标文件的路径,而不是目标文件本身的 inode。如果目标文件被删除或移动,软链接将无法正确访问目标文件,因为它仅仅是一个路径引用。

硬链接:

软链接

© 2026 周顺的技术博客
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}