免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 855 | 回复: 0
打印 上一主题 下一主题

linux软链接和硬链接 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-10 09:39 |只看该作者 |倒序浏览

                                                                                                Hard link and Soft link(symblic link) 是很容易搞混的。 最近在看到文件系统的实现的时候竟然发现这个概念还是很模糊。 所以这里总结一下吧。
链接就是一种在共享文件和目录项之间建立联系的方式。 Linux中分为硬链接和软链接。
  • 硬链接:说得直白一点,硬链接就是一个文件的多个文件名(或者多个引用)。
    • 创建硬链接: ln file1 file2 ,这样file2就指向了file1所指向的文件的inode. 他们之间没有区别,因此也可以说file1是file2的硬链接.此时file1,file2的链接计数都变成2了。 当我们更改file1或者file2的内容时,它们的状态是同时被改变的(本来file1,file2指向的是同一个文件嘛!), 当然删除file1,或者file2 对另外一个不影响。kernel只是会将链接计数(inode.i_nlink)减1。
    • 你也可应用ln existingpath newpath来建立硬链接。 这时只创建newpath中的最后一个分量(即filename),而且newpath前面的部分必须存在。 existingpath所指向的文件也必须存在,否则出错。
    • 硬链接的限制:1. 硬链接不能跨越文件系统 2. 只有超级用户才可以创建指向目录的硬链接。

  • 软链接(符合链接): 符合链接就是一个快捷方式, 与硬链接之间共享inode不同,软链接与原文件之间使用不同的inode,他们之间不是等同的关系。 符号链接实际上是一种特殊的文件类型,这种文件包含了另一个文件的任意一个路径名。这个路径名指向位于任意一个文件系统的任意文件,甚至可以指向一个不存
    在的文件。系统会自动把对符号链接的大部分操作(如读、写等)变为对源文件的操作,但某些操作(如删除等)就会直接在符号链接上完成。
    • 创建符号链接: ln -s file1 file2 ,这样file2就指向了file1, 此时file1的链接计数并不增加。同时在修改file1后,file2的修改时间不会像硬链接一样同步更新(仅仅是一个快快捷方式嘛!)。 在删除file1后,对file2的读写等操作系统就会出错说找不到文件了。文件已经被删除了。
    • 符号链接克服了硬链接的缺点: 可以跨越文件系统,可以创建指向目录的链接。
    • 创建目录链接: ln -s existingpath newpath

               
               
               
               
               
               
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56406/showart_683081.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP