linux硬链接和软链接的区别
所属分类 linux
浏览量 1536
硬链接(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 源文件 链接名
touch a
touch b
ln a harda
ln -s b softb
ls -il
-i 显示inode
4264623 -rw-r--r-- 2 dugang staff 0 9 3 18:39 a
4264626 -rw-r--r-- 1 dugang staff 0 9 3 18:39 b
4264623 -rw-r--r-- 2 dugang staff 0 9 3 18:39 harda
4264640 lrwxr-xr-x 1 dugang staff 1 9 3 18:39 softb -> b
第一列为inode ,
a harda inode相同 指向同一个文件 链接数2
上一篇
下一篇
系统及应用监控工具
linux系统常用监控指标
Linux文件操作相关知识点
linux文件中的inode
log4j日志格式配置
Class.forName()和ClassLoader.loadClass()的区别