软链接:相当于Windows系统的快捷方式
硬链接:相当于 拷贝cp -p + 文件同步更新
创建一个文件用于测试
[root@MiWiFi-R4CM-srv link]# touch /tmp/link/test-link
1.软链接
1.1 创建
软链接支持文件和目录
# ln -s 目标文件或目录路径 软链接文件或目录名称
[root@MiWiFi-R4CM-srv link]# ln -s /tmp/link/test-link /tmp/link/test-link.soft
[root@MiWiFi-R4CM-srv link]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 28 07:20 test-link
lrwxrwxrwx. 1 root root 19 5月 28 07:26 test-link.soft -> /tmp/link/test-link
查看文件信息
左边的 l 代表文件类型为软链接,箭头表示指向的链接真实文件路径,相当于windows快捷方式右键属性里面的目标文件路径
1.2 源文件写入数据
[root@MiWiFi-R4CM-srv link]# echo "test soft link" >> /tmp/link/test-link
1.3 查看链接文件
查看软链接文件,内容跟修改的一致
[root@MiWiFi-R4CM-srv link]# cat /tmp/link/test-link.soft
test soft link
2.硬链接
2.1 创建
硬链接只支持文件
# ln 目标文件 硬链接名称
[root@MiWiFi-R4CM-srv link]# ln /tmp/link/test-link /tmp/link/test-link.hard
[root@MiWiFi-R4CM-srv link]# ll
总用量 8
-rw-r--r--. 2 root root 30 5月 30 01:13 test-link
-rw-r--r--. 2 root root 30 5月 30 01:13 test-link.hard
lrwxrwxrwx. 1 root root 19 5月 28 07:26 test-link.soft -> /tmp/link/test-link
查看文件列表,已经生成了一个test-link.hard文件,属性也跟源文件一致
2.2 源文件写入数据
[root@MiWiFi-R4CM-srv link]# echo "test hard link" >> /tmp/link/test-link
1.3 查看链接文件
查看硬链接文件,新增内容跟修改的一致
[root@MiWiFi-R4CM-srv link]# cat /tmp/link/test-link.hard
test soft link
test hard link
3 软链接和硬链接有什么不同?
从上面 1 和 2 来看,软链接和硬链接产生的效果好像一致啊,为什么还要分成两种?其实他们还是有很大的区别的
- 链接文件属性不同,软链接文件属性跟源文件不一定相同,比如权限(都为lrwxrwxrwx)、修改时间、文件大小(只是个符号链接)等,硬链接的文件属性跟源文件相同。
- 软件链接可以跨分区创建,硬链接只能跟源文件在同一个分区。
- 软链接可以对目录使用也可以对文件使用,硬链接只能对文件使用。
- 删除源文件之后软链接将变成一个死链接不能使用,硬链接则不受影响。
- 软链接跟源文件的i节点数不相同,硬链接跟源文件的i节点数相同,例如
[root@MiWiFi-R4CM-srv link]# ls -i test-link test-link.hard test-link.soft
69021981 test-link 69021981 test-link.hard 69021982 test-link.soft