浅谈Linux硬链接与软链接

文章目录

  • 一、Linux 下的链接种类
  • 二、什么是 inode?
  • 三、如何创建硬链接?
  • 四、如何创建软链接?


一、Linux 下的链接种类

  • 软链接:类似于
    windows系统中的快捷方式,与硬链接不同,软链接就是一个普通文件,只是数据块内容有点特殊,文件用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。
  • 硬链接:通过文件系统的 inode 进行链接,类似于 windows系统中的复制,但是不产生新的文件。

二、什么是 inode?

inode 是用来存放文件信息的,每个文件都会占用一个 inode,并且这个 inode 号是唯一的,文件的内容都是 inode 来指定的,而不是文件名,当系统要访问文件时,inode 就会被复制到内存,从而实现文件的快速访问,使用 ls -i命令则可以看到 inode 号。
在这里插入图片描述

三、如何创建硬链接?

可以用 ln 命令来建立硬连接。 格式:ln 源文件 目标文件 常用参数-f无论目标文件是否存在都要创建连接。
浅谈Linux硬链接与软链接_第1张图片
在例子中我们可以发现 hello.c 和 world.c 他们的 inode 号码都是 671184。因为inode 号一样,所有这个俩个文件的权限和属性也是一模一样的,也是 test1.c 和 test2.c 是俩个完全一样的文件。
浅谈Linux硬链接与软链接_第2张图片
连接数也由 1 变成了 2,这个代表的是有多少个档名链接到了这个 inode 号。
再创建一个硬连接。使用 ln test1.c tset3.c 命令后,则会发现我们这个连接数从2 变成了 3
浅谈Linux硬链接与软链接_第3张图片
使用硬链接的优缺点是什么?
优点
方便;虽然类似于 win 的复制,但是通常并不占用实际空间。而且不管我们是修改 hello.c 或者是修改 world.c 还是 helloworld.c,只要修改一个,我们的文件就会被同时修改,因为他们的 inode 号都是相同的。
浅谈Linux硬链接与软链接_第4张图片
安全:防止误删除,我们删除 test1.c 或者是 test2.c 或 test3.c 任意一个,我们还是可以通过剩下的连接来访问文件。除非都删掉。
缺点: 只能在同一个文件系统才可以创建硬连接(因为不同的文件系统管理方式不同),并且目录之间不能创建硬连接。

四、如何创建软链接?

可以用 ln 命令来建立软连接。 格式:ln -s 源文件 目标文件(必须加上-s 参数,使用 ln 如果不加任何参数的话,那么就是 Hard Link,而且源文件要用绝对路径)。
浅谈Linux硬链接与软链接_第5张图片

上图中我们可以发现 hello1.c 和 hellotest.c 的 inode 号是不一样的,所以这个俩个文件是完全独立的,总之软连接就是创立了一个新的文件,当访问这个连接文件的时候,系统就会发现他是一个连接文件,然后读取连接文件找到真正要访问的文件。
因为类似于 win 的快捷方式,我们删掉源文件 hellotest.c ,hello1 就不能打开了,如下图所示:
浅谈Linux硬链接与软链接_第6张图片
软连接虽然没有硬链接安全,但是限制少,所以使用范围还是很广泛的。

你可能感兴趣的:(linux系统零基础入门,linux,ubuntu)