软连接与硬连接

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

linux.tedu.cn

3)为文件file1建立硬连接file1-h并测试

[root@svr7~]#ln file1 file1-h

[root@svr7~]#cat file1-h

linux.tedu.cn

4)对比原始文件、软连接、硬连接的属性

可以发现软连接只是一个快捷方式,而硬连接与原始文件的i节点编号相同,其实对应同一块磁盘存储:

[root@svr7~]#ls -li /root/f0*.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

linux.tedu.cn

2)如果已知原始文件和硬连接的路径,当原始文件丢失时,可以快速重建

[root@svr7~]#ln file1 -h file1

[root@svr7~]#ls -li /root/f0*.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/

05-11 21:49