软链接与硬链接

文件引用模型

  在linux中,一切皆文件,而文件包含元数据(metedata)和用户数据(user data)。元数据中的inode号是系统标识和获取用户数据的唯一凭证,而文件名仅是为了方便用户记忆和使用。为了管理和组织文件,目录被引入系统,也正是在目录中记录了文件名和inode号的对应关系,可用如下模型表示:

(注:可以通过stat和ls -i命令获得文件的inode号)

  *为了解决文件的共享使用,引入了软链接(soft link 或 symbolic link)和硬链接(hard link),同时也有隐藏文件路径、增加权限的安全和节省存储空间等好处。

1. 硬链接

  若一个inode号对应多个文件名,则称这些文件为硬链接。(硬链接为文件的一个别名,他们有共同的inode)硬链接有如下几个特点:

  • 文件有相同的inode号和数据块(data block);
  • 只能对已存在的文件创建;
  • 不能交叉文件系统创建硬链接;
  • 不能对目录创建(防止产生目录环),只能对文件创建;
  • 删除一个硬链接文件不会影响其他具有相同inode号的文件。

2. 软链接

  若文件用户数据块中存放的是另一个文件的路径名,则该文件就是软链接。软链接就是一个普通的文件,只是文件的数据块内容有点特殊。软链接拥有自己的inode号和数据块,其有如下特点:

  • 软链接有自己的文件属性和权限等;
  • 可对不存在的文件或目录创建软链接;
  • 可交叉文件系统创建;
  • 可对文件或目录创建;
  • 创建软连接时,链接计数不会增加;
  • 删除软链接并不影响所指向的文件,但若指向的原文件被删除,则相关软链接变成了死链接(所指向的文件被重新创建,死链接可恢复为正常的软链接)。

软、硬链接的访问示意图:

时间: 2024-10-16 17:16:12

软链接与硬链接的相关文章

Linux下的软链接与硬链接

首先聊聊Linux中使用哪个命令创建链接文件,然后咱们在聊聊软链接和硬链接的区别. 使用ln命令可以创建某个文件的链接文件 用法:ln [-s -v] src dest 创建一个硬连接文件:ln 原文件 硬连接文件 硬链接与源文件的inode号相同,使用stat命令可以查看文件的元数据信息. 创建一个软连接文件:ln -s 原文件 软连接文件 加-s表示创建软连接(符号链接) 注意:创建连接文件时,指定源文件时, "原文件的路径"可以是绝对路径也可以是相对路径,但是要注意,如果&quo

linux软链接与硬链接的区别

Linux 文件系统最重要的特点之一是它的文件链接.链接是对文件的引用,这样可以让文件在文件系统中多处被看到.不过,在 Linux 中,链接可以如同原始文件一样来对待.链接可以与普通的文件一样被执行.编辑和访问.对系统中的其他应用程序而言,链接就是它所对应的原始文件.当您通过链接对文件进行编辑时,您编辑的实际上是原始文件.链接不是副本,linux有两种类型的链接:硬链接和符号链接(软链接). 硬链接(hard link)只能引用同一文件系统中的文件.它引用的是文件在文件系统中的物理索引(也称为

软链接和硬链接

软链接文件和硬链接文件 链接文件分为两种,硬链接(hard link)和软链接(symbolic link). 两种链接的本质区别关键点在于inode. 硬链接: 当系统要读一个文件时,就会先去读inode table,一个文件对应一个inode,然后再去根据inode中的信息到块区域去将数据取出来. 而硬链接是直接使用了和源文件相同的inode,硬链接文件直接链接到文件放置的块区域. 也就是说,进行硬链接的时候实际上该文件内容没有任何变化,只是指定了相同的inode. 硬链接有两个限制: (1

Linux软链接和硬链接文件

下面是Linux系统软件底层的存储结构,我们将从底层上来去解释Linux系统下的软硬连接文件 <一>: 解释(底层) 硬链接,其实从底层数据上来看, 硬链接其实就是增加了一个目录项.底层对应的inode table.数据区中的值是不变的, 也不会重新创建. 软链接, 其实从底层接上看, 软链接其实就是相当于重新创建了一个文件,, 无论是目录项,inode table,以及数据区都是重新重建的,而这个文件功能比较特殊, 它是用来指向另外一个文件的. <二>:命令的使用 硬链接命令:

linux 下的使用 ln 创建 软链接 和 硬链接

linux 下的一个指令 ln 作用: 创建软链接或者硬链接 Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(user data) 与 元数据(metadata) 用户数据里记录了文件的真正内容. 元数据里记录的是文件的附加属性,如 文件大小,创建时间,所有者等,其中 上面提到的 index node 就保存在元数据中.在linux 中文件名并不是文件的唯一标识,index onde 才是唯一标示,系统查找文件也

Linux下软链接与硬链接的区别

Linux下软链接与硬链接的区别 Linux中的文件都文件名和数据,在linux上面被分为两个部分:元数据与数据.用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方,而元数据是文件的附加属性,如大小,创建时间,所有者等信息.在Linux中,元数据中的inode号(inode是文件的元数据的一部分,但其不包含文件名,inode号即索引节点号)才是文件的唯一标识而不是文件名.文件名仅是为了方便人们的记忆和使用,系统或程序通过inode号寻找正确的文件数据快.下图为程序通过

第三章 Linux 软链接与硬链接

Linux 软链接与硬链接 通过实验加深理解 [[email protected]]$ touch f1          #创建一个测试文件f1 [[email protected]]$ ln f1 f2          #创建f1的一个 硬连接   文件f2 [[email protected]]$ ln -s f1 f3       #创建f1的一个 符号连接 文件f3  即软链接 [[email protected]]$ ls -li            # -i参数显示文件的ino

linux命令大全之ln命令详解(创建软链接和硬链接)

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,分为软链接.硬链接.软链接相当于windows的快捷方式,下面是使用方法和示例 ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间. 1.命令格式: 

inode探究及inode与软链接与硬链接关系

一.文件系统相关知识 superblock:记录此文件系统的整体属性,包括inode/block的总量,使用量,剩余量,以及文件系统的格式及相关信息 block:记录文件的内容,若文件太大,占用多个block inode:记录文件的属性,一个文件占用一个inode 文件系统一般分为多个块组(block group),每个块组有superblock,文件系统描述,块对应表,inode对应表,inodetable,dateblock组成 1. (1)block的大小在格式化后就不再改变了,除非重新格

磁盘分区,文件系统,软链接和硬链接,内存和进程管理

(一)磁盘分区 1.硬盘逻辑上划分为:块--磁道--磁柱--分区: 2.分区分类:主分区,扩展分区,逻辑分区 3.命令: sdb---scsi接口的第2个磁盘,路径为/dev/sdb /dev/sro----光盘,像/dev/sda  /dev/sdb   /dev/sdb2 这些我们可以称其为设备名 df命令用来检查linux服务器的文件系统的磁盘空间占用情况,df--diskfilesystem 文件系统 fdisk是对磁盘添加,删除,转化分区 fdisk  -l  /dev/sda 查看硬