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 10:52
下一篇 2016-08-02 10:52

相关推荐

  • inotify介绍及rsync + inotify 实时同步备份

    1、前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动备份,又可以结合ssh实现远程数据备份的安全,种种特性使他看起来相当优秀。但如果需备份数据十分庞大时,它的不足之处就显现出来了,比如每次执…

    Linux干货 2016-06-15
  • 网络接口bonding的设置、网卡别名的设置

    网络接口bonding的设置、网卡别名的设置 网络接口bonding的设置 1.bonding的原理 Bonding就是将多块网卡绑定同一IP 地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP 地址是不可能的。通过bonding ,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC 地址。 2.Bonding 的工作模式 …

    Linux干货 2016-09-05
  • week4:grep命令正则表达式的应用

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限;     ~]# cp -r /etc/skel/ /home/tuser1 |chmod -R g-rwx,o-rwx /home/tuser1 2.编辑/etc/group文件,添加组hadoop; &…

    Linux干货 2016-11-23
  • rpm程序包管理器使用详解

    rpm程序包管理器的使用详解   说到程序包管理器,就会想到基于CentOS系统上的rpm命令与其对应的前端处理器yum。所谓程序包,是将源代码转换为二进制格式,再组织成一个或者多个包文件供用户安装使用。rpm程序包的命名格式如下:   name-VERSION-release.arch.rpm   软件名-版本号(分为主版本m…

    Linux干货 2016-08-21
  • 网络N23期第一周(计算机的组成及功能及Linux的发行版等)

    一. 描述计算机的组成及功能 计算机由五大硬件组成:” 运算器 + 控制器 + 储存器 + 输入设备 + 输出设备” 。 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算…

    Linux干货 2016-09-22
  • N25-第五周

    一.显示当前系统上root、fedora或user1用户的默认shell;    [root@localhost ~]# useradd fedora && useradd user1 && grep "^\(root\|fedora\|user1\)" /etc/passwd | cu…

    Linux干货 2017-01-09