linux 下的软连接和硬链接
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,linux下创建硬链接相当于对源文件的拷贝,生成的新文件和源文件的inode值时一致的,当源文件删除后,硬链接不会失效软连接类似于源文件的快捷方式,两者的inode不同,它里面保存的时源文件的路径信息
千家信息网最后更新 2025年12月04日linux 下的软连接和硬链接
- linux下创建硬链接相当于对源文件的拷贝,生成的新文件和源文件的inode值时一致的,当源文件删除后,硬链接不会失效
- 软连接类似于源文件的快捷方式,两者的inode不同,它里面保存的时源文件的路径信息,当源文件的删除消失后,软连接失效,此时如果在新建源文件,则软链接继续生效
测试一下
实验环境:ubuntu 14.04 kernel:3.13.0-24-generic
1. 新建一个测试文件touch test使用stat或者ls -i选项去查看test的inode值```ubuntu@ubuntu-virtual-machine:~/work/shell/file$ stat test文件:"test"大小:0 块:0 IO 块:4096 普通空文件设备:801h/2049d Inode:4208823 硬链接:1权限:(0664/-rw-rw-r--) Uid:( 1000/ ubuntu) Gid:( 1000/ ubuntu)最近访问:2018-03-06 15:51:01.689080893 +0800最近更改:2018-03-06 15:51:01.689080893 +0800最近改动:2018-03-06 15:51:01.689080893 +0800创建时间:-```inode 值是 Inode:4208823 2. 创建硬链接``` ubuntu@ubuntu-virtual-machine:~/work/shell/file$ ln test hard_test ubuntu@ubuntu-virtual-machine:~/work/shell/file$ stat hard_test 文件:"hard_test" 大小:0 块:0 IO 块:4096 普通空文件设备:801h/2049d Inode:4208823 硬链接:2权限:(0664/-rw-rw-r--) Uid:( 1000/ ubuntu) Gid:( 1000/ ubuntu)最近访问:2018-03-06 15:51:01.689080893 +0800最近更改:2018-03-06 15:51:01.689080893 +0800最近改动:2018-03-06 15:53:54.857425605 +0800创建时间:-```可以看出inode 相同 3. 创建软连接```ubuntu@ubuntu-virtual-machine:~/work/shell/file$ ln -s test soft_testubuntu@ubuntu-virtual-machine:~/work/shell/file$ stat soft_test 文件:"soft_test" -> "test"
大小:4 块:0 IO 块:4096 符号链接
设备:801h/2049d Inode:4208824 硬链接:1
权限:(0777/lrwxrwxrwx) Uid:( 1000/ ubuntu) Gid:( 1000/ ubuntu)
最近访问:2018-03-06 15:56:35.129543502 +0800
最近更改:2018-03-06 15:55:04.201563628 +0800
最近改动:2018-03-06 15:55:04.201563628 +0800
创建时间:-
```可以看出,inode不同,软连接和源文件是两个不同的文件,只是它其中保存的是源文件的路径现在在源文件中写入内容,观察三个的文件的变化```ubuntu@ubuntu-virtual-machine:~/work/shell/file$ echo "123" >testubuntu@ubuntu-virtual-machine:~/work/shell/file$ ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat test123ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_test 123ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat hard_test 123ubuntu@ubuntu-virtual-machine:~/work/shell/file$ echo "456" >>hard_test ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat hard_test 123456ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat test 123456ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_testtest cat: soft_testtest: 没有那个文件或目录ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_test123456```4. 删除源文件观察```ubuntu@ubuntu-virtual-machine:~/work/shell/file$ rm testubuntu@ubuntu-virtual-machine:~/work/shell/file$ ll总用量 12drwxrwxr-x 2 ubuntu ubuntu 4096 3月 6 16:01 ./drwxrwxr-x 3 ubuntu ubuntu 4096 3月 6 15:25 ../-rw-rw-r-- 1 ubuntu ubuntu 12 3月 6 16:00 hard_testlrwxrwxrwx 1 ubuntu ubuntu 4 3月 6 15:55 soft_test -> testubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_test cat: soft_test: 没有那个文件或目录ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat hard_test 123456789```可以看出软连接失效,但是硬链接不受影响- linux 有个专门的指令 readlink,这个指令是得到软连接的地址,比如上例中就可以得到软链接指向的源文件的地址
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ readlink soft_test test
源文件
文件
链接
不同
大小
时间
权限
设备
普通
地址
指令
目录
路径
测试
观察
相同
一致
三个
两个
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全宣传片头
灵丘新时代网络安全服务保障
软件开发行业专业术语
数据库表解锁unlock
苹果下载连接不了服务器
网络安全技术的课程
危害网络安全法
徐汇区创新软件开发程序
snorna数据库
2017年 网络技术论文
不买服务器可以做一个游戏吗
软件开发 技术总结
创建指定字符串的数据库
服务器如何进入到修复模式
高斯数据库多大
数据库队列问题
服务器主机画像
服务器power on
中联重科数据库怎么删除
esu数据库
阿里云服务器怎么挂路由器上
企家有道网络技术产品
数据库表解锁unlock
网络技术与应用安全培训
apache 游戏服务器
域名中顶级服务器作用
云南综合软件开发市场价
kurento服务器
公司内部网络安全题库
软件开发股份合同