2案例2:软连接与硬连接
2.1问题
本例要求理解软连接于硬连接的基本差异,完成下列操作:
- 新建文件file1,内容为AAAA
- 为file1建立软连接file1-s,对比两个文件的内容
- 为file1建立硬连接file1-h,对比两文件内容
- 对比上述3个文件的i节点编号
- 删除文件file1,再查看文件file1-s、file1-h内容
2.2方案
软连接与硬连接:
- 软连接:指向原始文件的路径,若原始文件别删除,连接文件将失效;原始文件可以是目录;原始文件于连接文件可以在不同的分区/文件系统
- 硬连接:指向原始文件的i节点档案,肉原始文件删除,连接文件仍然有效;原始文件不能是目录;原始文件与连接文件必须在同一分区/文件系统
2.3步骤
实现此案例需要按照如下步骤进行。
步骤一:使用ln命令为文档/目录建立连接
1)新建一个测试文件
[root@svr7 ~]# vim file1
AAAA
2)为文件file1建立软连接file1-s并测试
[root@svr7 ~]# ln -s file1 file1-s
[root@svr7 ~]# cat file1-s
AAAA
3)为文件file1建立硬连接file1-h并测试
[root@svr7 ~]# ln file1 file1-h
[root@svr7 ~]# cat file1-h
AAAA
4)对比原始文件、软连接、硬连接的属性
可以发现软连接只是一个快捷方式,而硬连接与原始文件的i节点编号相同,其实对应同一块磁盘存储:
[root@svr7 ~]# ls -li /root/fi*.txt
204645793 -rw-r--r--. 2 root root 14 Jan 6 12:14 file1-h
201628464 lrwxrwxrwx. 1 root root 12 Jan 6 12:16 file1-s -> file1
204645793 -rw-r--r--. 2 root root 14 Jan 6 12:14 file1
步骤二:原始文件删除测试
1)当原始文件别删除时,软连接将会失效,而硬连接仍然可访问文本数据
[root@svr7 ~]# rm -rf file1
[root@svr7 ~]# cat file1-s
cat: file1-s: No such file or directory
[root@svr7 ~]# cat file1-h
AAAA
2)如果已知原始文件和硬连接的路径,当原始文件丢失时,可以快捷重建
[root@svr7 ~]# ln file1-h file1
[root@svr7 ~]# ls -li /root/fi*.txt
204645793 -rw-r--r--. 2 root root 14 Jan 6 12:14 file1-h
201628464 lrwxrwxrwx. 1 root root 12 Jan 6 12:16 file1-s -> file1
204645793 -rw-r--r--. 2 root root 14 Jan 6 12:14 file1
3)不支持为目录创建硬连接,但可以为目录建立软连接
[root@svr7 ~]# ln /etc/sysconfig/network-scripts/ /etc/network
ln: '/etc/sysconfig/network-scripts/': hard link not allowed for directory
[root@svr7 ~]# ln -s /etc/sysconfig/network-scripts/ /etc/interface
[root@svr7 ~]# ls -l /etc/interface
lrwxrwxrwx. 1 root root 31 Jan 6 12:28 /etc/interface -> /etc/sysconfig/network-scripts/