软链接与硬链接的区别

  这两牵扯到链接,那么先介绍以下链接。

  在文件系统中,有一种可以把不同的文件相连接到一起的机制,这个机制叫做链接。通俗的话来说就是打开两个不同的文件夹,其实进去的是同一个。它可以把一个文件用不同的名字和路径来表示出来。系统通过inode(索引节点,文件唯一标识)来识别是否为同一个文件,无论系统上有有多少个链接,在磁盘上只有一个唯一的inode,只要这个文件的的链接数不为0,那么这个文件件的inode会一直存在,文件会一直保存。

 

例如用ls-l可以查看文件的详情:

软链接与硬链接的区别

在这文件中,绿色的3txt与2.txt构成了一个链接。在Linux中->就代表着链接。

硬链接:

   硬链接就相当于一个指针,指向文件的索引节点,系统并不会为他重新分配新的inode,但是没添加一个硬链接,文件链接数会加一。

   硬链接允许一个文件同时又多个路径名,用户只删除一个硬链接并不影响这个文件的inode与其他相连接,只有最后一个链接被删除后,这个文件的inode就释放,数据块就保持在空闲状态允许被写入。用这种硬链接可以有效的防止误删除。但是硬链接不能跨分区创建,不再同一个分区是无法直接与数据块的inode相连接。也不允许给目录创建硬链接。在创建硬链接时可以相对于当前路径去创建,每创建一个硬链接就会会增加额外的记录项以引用文件。硬链接也不会占用节点号,但会增加链接数。同一个文件无论创建多少个硬链接,他们的属性都是完全相同的,这相当于是一个物理文件的不同名字。就像我们人一样,一个人可以有多个名字,无论你叫什么名字,你还是你,你自己的属性是不会改变的,总不会换一个名字就瘦了几斤或者长高了吧。


语法:

                            ln  filename [linkname]

软链接:

    又被称作为符号链接。软链接我们可以理解为windowx的快捷方式,相信大家都用过吧。创建一个软链接其实就是创建一个特殊的文件,这个文件内容就是这个链接的信息。软链接文件的大小就是这个路径的大小。软链接就是一个位置的处理,跟硬链接有本质的区别。举个例子:当你对A创建一个软链接,然后把A文件删除了,那时这个链接并不会一起呗删除,只是失效了。当你再重新在原来的地方创建一个以A命名的文件,再使用原来这个软链接。你会发现,又连接进了新建的这个A文件里了。说明软链接并不指定文件,而是指定的位置,等于给这个位置创建了另一条路径。就相当于家房子的地址如果你搬家不住这了那么这个地址会不被你使用了,并不是这个地址就不存在了。当小明买了你家的房子住进去后,这个地址就会变为他们家的地址。所以软链接就是一个链接符,指向了一个地址而已。创建软链接后文件的链接数不会增长,不会增加目标inode的引用计数,因为只是指向一个地址,所以软链接不但可以连接目录而且还能跨分区进行连接。

语法:

       ln -s filename [linkname]

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

(0)
phosphorphosphor
上一篇 2017-05-25 09:16
下一篇 2017-05-25 10:49

相关推荐

  • linux分区管理工具—fdisk

    一、关于为什么要分区       (1)为了数据的安全:当文件系统只有一个分区时,如果遇到分区需要格式化的情况,则硬盘里的数据无法保留,而如果提前对硬盘做了分区那么就可以很好地额解决这个问题;       (2)为了提升效率:硬盘(这里单指机械硬盘)分为外圈和…

    Linux干货 2016-03-12
  • https搭建

    https             http over ssl = https 443/tcp                 ssl: v3           &nb…

    Linux干货 2016-06-28
  • 做有高薪有逼格的运维工程师,不会Linux是没有前途的!

    作为互联网的幕后英雄,运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。 相对于普罗大众的一无所知,技术圈对运…

    2017-09-08
  • FHS文件系统各目录及功能

    FHS即:filesystem hierarchy standard 的缩写,意思是文件系统目录标准,Linux系统采用这种文件组织形式,这是一种树形结构组织文件。如下图, /bin : 此文件用于放置二进制执行文件。 在/bin底下的指令可以被root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir,…

    Linux干货 2016-10-17
  • Linux系统认知

    前言 在认识Linux系统之前先介绍下计算机的组成构造及其功能: 1,简单来说计算机可以划分为软件系统和硬件系统: (1)软件系统自不必说就是各种不同的程序,协助用户更好地使用电脑。 (2)硬件系统指的是主机、显示器、鼠键等硬件设备。 2,按冯诺依曼体系可将计算机按逻辑构成分为: (1)CPU(运算器、控制器)。运算器是数据处理装置,用来完成对数据的算术运算…

    Linux干货 2016-09-20
  • 笔记整理:权限管理2-特殊权限(sst)和隐藏属性

    特殊权限 进程访问文件时的权限,取决于进程的发起者和其所在的属组。还有其他权限,包括SST(Suid【可以更改进程发起者】,Sgid【可以更改进程发起者属组】,Sticky) 查询SUID/SGID文件   find / -perm +6000 SUID 使用特点 SUID只能作用在二进制文件上。 执行者需要对该文件具有可执行权限 只在程序运行过程…

    Linux干货 2016-08-05