Linux系统中,如何区分软连接和硬连接?
摘要:软连接概述 软连接类似Windows中的快捷方式,本身是一个独立文件,有自己的inode,内容只是指向另一个文件的路径字符串。 其特点如下: 可以跨文件系统、跨分区、跨磁盘 可以链接目录 源文件删除后,软链接变成死链接(失效) 软链接大小
软连接概述
软连接类似Windows中的快捷方式,本身是一个独立文件,有自己的inode,内容只是指向另一个文件的路径字符串。
其特点如下:
可以跨文件系统、跨分区、跨磁盘
可以链接目录
源文件删除后,软链接变成死链接(失效)
软链接大小 = 指向路径的字符串长度
支持相对路径、绝对路径创建软连接
创建方式
ln -s 源文件 目标链接
示例:
# 相对路径创建软连接
root@master:/data00/tmp# ln -s sort.txt sort.txt.ln
# 查看
root@master:/data00/tmp# ll -i | grep sort
28573733 -rw-r--r-- 1 root root 77 Apr 14 10:56 sort.txt
28573734 lrwxrwxrwx 1 root root 8 Apr 14 11:05 sort.txt.ln -> sort.txt
# 通过上面可以看到,其inode不相同,文件大小不相同
当修改链接文件后,源文件会产生什么变化呢?
会发现两个文件都会同时修改
root@master:/data00/tmp# echo haha > sort.txt.ln
root@master:/data00/tmp# cat sort.txt.ln
haha
root@master:/data00/tmp# cat sort.txt
haha
当我们删除链接文件时,源文件会删除吗?
源文件不会删除,删除链接文件对源文件不会产生任何影响
root@master:/data00/tmp# rm -rf sort.txt.ln
root@master:/data00/tmp# ll | grep sort.txt
-rw-r--r-- 1 root root 5 Apr 14 11:11 sort.txt
root@master:/data00/tmp# cat sort.txt
haha
当删除源文件,会对链接文件产生什么影响呢?
发现链接文件失效
# 创建软连接
root@master:/data00/tmp# ln -s sort.txt sort.txt.ln
root@master:/data00/tmp# ll | grep sort.txt
-rw-r--r-- 1 root root 5 Apr 14 11:11 sort.txt
lrwxrwxrwx 1 root root 8 Apr 14 11:15 sort.txt.ln -> sort.txt
# 删除源文件
root@master:/data00/tmp# rm -rf sort.txt
root@master:/data00/tmp# ll | grep sort.txt.ln
lrwxrwxrwx 1 root root 8 Apr 14 11:15 sort.txt.ln -> sort.txt
# 查看源文件内容
root@master:/data00/tmp# cat sort.txt.ln
cat: sort.txt.ln: No such file or directory
硬连接概述
在同一个磁盘分区中inode号码相同的文件,互为硬链接。
