导航

ln软硬链接的区别

Posted on 2011-08-21 16:36  C'est la vie  阅读(2829)  评论(1编辑  收藏  举报

 

ln命令中,man-pages里说了一些关于ln与ln -s的区别,软硬链接的不同点,有点模糊,查阅了网络上大家的总结,自己也总结下

ln *source *target 默认产生一个硬链接,

ln -s *source *target 加上参数-s,建立软链接

区别

1、 软链接可以跨文件系统,比如你要链接一个windows共享文件夹下的某文件至linux里,软链接可以,而硬链接不行,硬的只能在一个分区里

2、inode节点问题,硬的不管有多少个,均指向一个inode,每创建一个硬链接,会产生一个(大小、权限、inode、时间)一致的文件,并增加1个链接数,它们是绝对平等的,可以通过ls -il命令查看详细的inode和连接数。

软链接,是产生一个很小的具有新inode的文件,有点类似win中的“快捷方式”,它存放的是指向源文件路径的指针,是个全新的文件 

删除一个硬链接,只会减少连接数,直到删除最后一个连接数为1的文件,就是彻底删除了此文件

删除一个软链接文件,无区别。删除源文件的话,软连接则指向了一个空文件 

(关于inode节点,我的理解是存放在磁盘空间的一个地址,所有的文件都具有一个inode用来指向磁盘里的实际存储位置,有误的话欢迎指正)

3、软的可以链接目录,而硬的不行

 

一般我们都是采用软链接的方式给文件链接,因为可以跨分区和文件系统。

还有个值得注意的是,不管是修改软链接还是硬链接文件,所有的文件都是同步修改的,这是软硬的共性