软链接与硬链接的区别

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

  在文件系统中,有一种可以把不同的文件相连接到一起的机制,这个机制叫做链接。通俗的话来说就是打开两个不同的文件夹,其实进去的是同一个。它可以把一个文件用不同的名字和路径来表示出来。系统通过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

相关推荐

  • N21天天第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS主机按以下顺序启动 1、POST加电自检 2、BIOS读取CMOS中的BIOS设置的参数来识别基础硬件,寻找到启动设备 3、MBR 1)读取启动设备MBR中前446字节的bootloader 2)读取MBR后的扇区用来识别grub以及内核kernel所在的区域 3)启动g…

    Linux干货 2016-09-26
  • Linux不同发行版之间的联系与区别

    Linux发行版有商业版、社区版两类。两者的共同点都是GNU/Linux发行版,区别在于商业版是由商业公司维护,社区版是社区组织维护。由于linux发行版都要遵循GPL协定,任何人都有使用、共享、修改软件源代码的自由,所以商业版的收入主要来自向企业提供支持服务,它的软件基本都是免费的。

    Linux干货 2018-03-04
  • 第六周作业

    vim编辑器的使用 vim在工作过程中有三种模式:编辑模式、输入模式、末行模式 编辑模式:也叫命令模式,键盘操作常被理解为编辑命令。 输入模式:在文本文件中输入内容。 末行模式:vim内置的命令行接口,执行vim的内置命令。 vim的使用 打开文件:#vim [OPTIONS]…[FILE]… +#:打开文件后,直接让光标处于第#行 …

    Linux干货 2017-07-04
  • linux网络属性管理

    Linux网络属性配置 计算机网络:TCP/IP:协议栈(使用)ISO,OSI:协议栈(学习) MAC:Media Access Control48bits:ICANN:24bits, 2^24地址块:2^24 网桥(bridge):MAC地址表静态指定:动态学习:根据原地址学习; 交换机(switch):多端口网桥; IP(Internet protoco…

    Linux干货 2017-10-14
  • LB-lvs

    Linux Cluster: Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统; Linux Cluster类型: LB:Load Balancing,负载均衡; HA:High Availiablity,高可用; A=MTBF/(MTBF+MTTR) (0,1):90%, 95%, 99%, 99.5%, 99.9%, 99.99%, …

    Linux干货 2017-06-25
  • shell脚本基础

    shell脚本编程基础 1、基本格式 首先在编写shell的开始要声明一下该shell所用的脚本类型,我们也称为shebang机制 eg: #!/bin/bash # Description … 2、bash中的变量的种类 (1)、本地变量 生效范围: 当前shell进程,对当前shell之外的进程及子进程均无效 (2)、环境变量 生效范围: 当前she…

    Linux干货 2017-08-04