软链接和硬链接详解

    • 软连接和硬链接图解

    • 硬链接

    • 符号链接

    • 软链接和硬链接详解

软链接和硬链接详解

Linux下的链接文件有点类似于Windows的快捷方式,但又不完全一样。链接文件有两种:一种是硬链接,另一种是符号链接(又称软链接)。

UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系统只存在一个文件的副本,系统简单地通过在目录中建立一个新的登记项来实现这种连接。

软连接和硬链接图解

QQ截图20160905030801.png

硬链接

硬链接是通过索引节点进行的链接。 该登记项具有一个新的文件名和要连接文件的inode 号,文件的目录登记项就是所谓的文件硬链接(硬链接,目录登记项: 文件名‐‐>文件的inode;文件名可以有多个,但文件inode 只是一个)。不论一个文件有多少硬链接,在磁盘上只有一个描述它的inode, 只要该文件的链接数不为0,该文件就保持存在。硬链接不能跨越文件系统,为避免无限递归,一般也不能在目录上建立hard link。 硬连接是直接建立在节点表上的(inode),建立硬连接指向一个文件的时候,会更新节点表上面的计数值。举个例子,一个文件被连接了两次(硬连接),这个文件的计数值是3,而无论通过3个文件名中的任何一个访问,效果都是完全一样的,但是如果删除其中任意一个,都只是把计数值减1,不会删除实际的内容的,(任何存在的 文件本身就算是一个硬连接)只有计数值变成0也就是没有任何硬连接指向的时候才会真实的删除内容。对任何一个硬链接文件修改,都会对原文件进行修改。

硬链接可由命令 link 或 ln 创建,如:

link oldfile newfile 
ln oldfile newfile

符号链接

软链接(也叫符号链接)它是指向另一个文件的特殊文件,这种文件的数据部分仅包含它所要链接文件的路径名。软链接是为了克服硬链接的不足而引入的,软链接不直接使用inode 号作为文件指针,而是使用文件路径名作为指针(软链接:文件名+数据部分‐‐>目标文件的路径名)。软件有自己的inode,并在磁盘上有一小片空间存放路径名。因此,软链接能够跨文件系统,也可以和目录链接; 其二,软链接可以对一个不存在的文件名进行链接,但直到这个名字对应的文件被创建后,才能打开其链接。当软链接指向的文件删除重命名或移动后,软链接并不会发生更新,会维持原来的值不变。

例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

使用-s选项的ln命令即可创建符号链接,命令如下:

ln -s old.file soft.link
ln -s old.dir soft.link.dir

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

(1)
上一篇 2016-09-06 08:51
下一篇 2016-09-06 08:51

相关推荐

  • 马哥教育网络班20期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 常用文件管理命令有:ls、mkdir、cd、pwd、cp、rm、mv、touch、cat、more、less、head、tail等 (1)ls命令:列出目录内容 ls [OPTION]… [FILE]…  &nbs…

    Linux干货 2016-06-29
  • IP地址之IPv6

    一、IPv6概述   目前使用的IP地址都是IPv4版本,之所以开发出IPv6版本主要是基于以下原因:     1、IPv4地址空间不足,分配不合理;     2、IPv4头部太过于复杂;     3、使用IPv4使得路由器及主机配置复杂;     4、对于IPv4重新…

    Linux干货 2016-01-13
  • LVS介绍及工作原理图解

    一、LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2….

    2017-12-06
  • N26-第五周

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost test]# cat /etc/passwd | grep -E “^(root|fedora|user1)\>” |cut -d: -f  1,7 root:/bin/bash user1:/bin/bash …

    Linux干货 2017-02-26
  • Shell 变量类型及用法

    一、      什么是变量          变量源于数学,在计算机语言中能储存计算机结果或能表示值的抽象概念,变量可以由变量名访问,在指令语言中,变量通常是可变的。Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个…

    Linux干货 2016-08-12
  • 逻辑卷实例

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录 3、扩展testlv至7G,要…

    Linux干货 2016-09-01