Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783713
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-05 14:33:25

硬链接与软连接:ln
硬链接(hard link)
  我们知道一个目录下的文件名是记录在block中的,这个目录的属性记录在inode里面,inode又指向这个block。硬链接只是在某个目录下的block多写入一个关联数据而已,相当于文件别名。一般情况下既不会增加inode也不会耗用block 的数量。
  硬链接最大的好处是安全,当删除一个“文件名”时,inode 与 block 都还在,还可以找到文件的数据。因为硬链接文件名的存在,数据是不会被从磁盘中删除的。而且,因为有共同的 inode 与 block ,所以编辑任一个文件,都会修改实际数据。目录也是一个文件,这个文件里面记载它下面包含的文件。
 比方有两个不同的目录下面有两个不同名字的文件记录,他们的入口 i- 节点都是 49,这个就是硬链接。
  但是硬链接有限制:
不能跨文件系统
不能连接到目录


软连接(符号链接 symbolic link)
  symbolic link 就是在创建一个独立的文件,而这个文件会让数据读取指向它连接的那个文件的文件名,两个文件指向不同的 inode 。
  文件名被删除时,系统会自动分析,然后删除文件的实际内容。所以源文件被删除时,symbolic link 就打不开了。相当于windows下的快捷方式。通过符号链接文件同样可以修改源文件的内容。
  由于symbolic link 所创建的文件为一个独立的新文件,所以会占用掉 inode 与 block 。


  硬链接限制较多,包括无法做目录的连接,所以在用途上比较受限,反而是软连接的使用广泛。


#ln [-sf] 源文件 目标文件
  -s:软连接,如果不加任何参数就是硬链接。
  -f:如果目标文件存在时,就主动将目标文件删除后再创建。


关于目录连接的数量:
  当我们创建一个目录时,新的目录的连接数为 2 ,而上层目录的连接数也会增加 1 !因为新建一个目录时,基本上会有三个东西:
  /tmp/testing 代表该目录
  /tmp/testing/. 代表该目录
  /tmp/testing/.. 代表上层目录



  要注意的是,虽然硬链接的显示和正常文件的显示一样,前面也显示的是 “-”,大小也不是 0,但是它确实没有占用磁盘空间,而且与源文件指向同一个 inode ,绝对不是把源文件复制了一份,切记!
阅读(679) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~