首页   快速返回

linux硬链接和软链接的区别     所属分类 linux
硬链接(hard link)
A是B的硬链接(A和B都是文件名),A和B具有相同的inode,一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,
A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。
每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,
直到为0,inode节点和对应的数据块被回收。
注意 文件和文件名的区别,rm A 删除的只是A这个文件名,
而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。



软链接(soft link):
A是B的软链接(A和B都是文件名),A和B的inode不相同,
A和B指向的是两个不同的inode,指向两个不同的数据块。
A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。
A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。


使用限制

硬链接
a 不能对目录创建硬链接
b 不能对不同的文件系统创建硬链接,即两个文件名要在相同的文件系统下。
c 不能对不存在的文件创建硬链接 。

软链接
a 可以对目录创建软链接,遍历操作会忽略目录的软链接。
b 可以跨文件系统
c 可以对不存在的文件创建软链接


硬链接
ln 源文件 链接名

软链接
ln -s 源文件 链接名

上一篇     下一篇
系统及应用监控工具

linux系统常用监控指标

Linux文件操作相关知识点

linux文件中的inode

log4j日志格式配置

Class.forName()和ClassLoader.loadClass()的区别