M20 – 1- 第二周(2):硬链接与软链接的区别

在讲硬链接与软链接的区别之前,我们首先了解inode,了解inode让我们更容易理解何为硬链接和软链接。

inode概念

       何为inode,inode就是索引节点,而inode表中存放着文件的元数据,何为元数据,元数据就是文件名称、大小、时间戳、所有者、权限、inode等信息,而文件中的内容就是文件的数据,因此文件是由元数据(metadata)和数据(data)组成。Inode到底有什么用呢,请看下图:

1.png

我们在查找文件时,是以文件名称来查找,但是系统无法识别文件名称,而是以inode号来查找文件的位置,因此 inode 号才是文件的唯一标识而非文件名文件名仅是为了方便人们的记忆和使用,系统或程序都是通过 文件的inode 号查找到的文件数据块。

硬链接概念

接下来了解一下何为硬链接和软链接,硬链接:就是一个文件可以有一个或多个文件名。请看下图:

2.png

是否看了图2觉得对硬链接更容易理解了,硬链接其实就是有很多个文件名不一样,但是元数据都是一样的,都是指向同一个inode,并由inode号指向文件中的内容(数据),当编辑‘filename1’中的元数据或数据时,而filename2与filename3中的元数据与数据也会跟着改变,请看下图:

3.png

硬链接总结:

  1. 创建硬链接会增加额外的记录项以引用文件

  2. 对应于同一文件系统上一个物理文件

  3. 每个目录引用相同的inode号

  4. 创建时链接数递增

注意:删除硬链接文件时

  1. rm命令递减计数的链接

  2. 文件要存在,至少有一个链接

  3. 当链接数为零时,该文件被删除

  4. 不能跨越驱动器或分区

  5. 语法: ln filename [linkname]

软链接概念

何为软链接,软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。请看下图:

77.png

从上图可以看出,软链接的数据也就是另一个硬链接的路径,其数据是引用硬链接文件的,但是元数据却跟硬链接不一致,请看下图:

9.png

是否已经对软链接已经有一个新的认识了呢。

软链接总结:

  1. 一个符号链接指向另一个文件

  2. ls – l的 显示链接的名称和引用的文件

  3. 一个符号链接的内容是它引用文件的名称

  4. 可以对目录进行

  5. 可以跨分区

  6. 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数

  7. 语法:ln -s filename [linkname]


接下来是重头戏,软链接与硬链接的区别:

  1. 硬链接和原文件没有什么区别,而且共享一个 inode 号,除了名称不一致,其它的数据以及元数据均一致;而软链接不共享 inode,有自己独立的 inode,与原文件的元数据也不一致,但是软链接的数据是引用原文件的数据

  2. 若原文件删除了,则软连接则不可以访问,但是软链接还存在,而硬连接则是可以的,但是硬链接次数递减,而软软件不会更改

  3. 由于符号链接的特性,导致其可以跨越磁盘分区及文件系统,但硬链接不具备这个特性

原创文章,作者:Aleen,如若转载,请注明出处:http://www.178linux.com/27016

(0)
AleenAleen
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • 网络接口配置-bonding

    网络接口配置-bonding •Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 Bonding的工作模式 •Mode 0 (balance-rr) 轮转(Round-robin)策略:从头…

    Linux干货 2016-09-05
  • 第三周

    第三周 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@node1 ~]# who -q | sed -n ‘1p’ centos root fedora redhat mint 2.取出最后登录到当前系统的用户的相关信息。 [root@node1 ~]# who -a | tail -1 mint +…

    Linux干货 2017-07-25
  • RAID简述和Linux软RAID配置

    RAID简述和Linux软RAID配置 PS:仅为课程练习,原理和配置可能有误,仅供参考,谢谢; 1.RAID功能简述     RAID,全称(Redundant Arrays of Inexpensive Disk或Redundant Arrays of Independent Disk),现在一般多用于后面那个称呼,独立磁盘冗余阵列。RAID的基础概念大…

    Linux干货 2016-07-17
  • Linux基础操作-week5

    1、显示当前系统上root、fedora或user1用户的默认shell; 方式一: # whoami root # echo $SHELL /bin/bash 方式二: #grep user1 /etc/passwd|awk -F “:” ‘{print $7}’ /bin/bash 2、找出/etc/rc.…

    Linux干货 2016-11-27
  • N25期第二周作业

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 ls 列出文件和目录命令 -a:显示所有档案及目录 -A:显示除隐藏文件”.”和”..”以外的所有文件 -C:多列显示结果,默认选项 -l:单列显示结果,以长格式显示目录下的内容列表 -F:在每个输出项后追加文件的类型标识符 &#822…

    Linux干货 2016-12-11