软连接与硬连接

要弄清楚2者的区别,首先得明白linux系统中文件是如何存储的.在linux中存储一个文件由3部分组成:

      文件名       inode         block(数据块)

关于inode:

      block用来存储数据.而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小,归属的用户组,读写权限等.inode为每个文件进行信息索引,所以就有了inode的数值.

在来谈谈到底什么是硬连接什么是软连接:

      先看下面一个列子:

      创建连接文件之前

      lvbook@lvbook-desktop:/home/chendan/onetime/3$ ls -il
      total 0
      149945 -rw-r--r-- 1 root root 0 2010-03-23 23:54 test1.c
      149947 -rw-r--r-- 1 root root 0 2010-03-23 23:55 test2.c

      创建一个硬连接

      lvbook@lvbook-desktop:/home/chendan/onetime/3$ sudo ln test1.c hlink

      149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 hlink
      149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 test1.c
      149947 -rw-r--r-- 1 root root 0 2010-03-23 23:55 test2.c
      可以看到test1.c连接数+1,并且可以看出hlink与test1.c除了文件名不同外,其余都是完全相同的.它们的索引节点相同,读写权限相同.由此我们可以这样理解,所谓硬连接就是原文件的一个克隆体.
      创建一个软连接

      lvbook@lvbook-desktop:/home/chendan/onetime/3$ sudo ln -s test2.c slink

      lvbook@lvbook-desktop:/home/chendan/onetime/3$ ls -il

      149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 hlink
      149944 lrwxrwxrwx 1 root root 7 2010-03-23 23:57 slink -> test2.c
      149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 test1.c
      149947 -rw-r--r-- 1 root root 0 2010-03-23 23:55 test2.c

      可以看到test2.c的连接数没有变,它们的索引节点不同,读写权限不同.我们可以这样理解,当我们创建一个连接文件时,系统为我们的连接文件从新分配了一片小的内存用来存放我们的连接文件的索引,文件名,数据块.而其中的数据块保存的是连接源的文件名.

 

 

 

大家可以参考:
http://blog.chinaunix.net/u3/95713/showart_2056964.html

连接有软连接(symbolic link)和硬连接(hard link)之分,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值