书上给的软硬连接的概念真的是模糊,在CSDN诸位大佬的指教下,大概明白了软硬连接的区别,整理如下。
一、软连接和硬链接的语法:
硬链接:ln <源文件> <新创建的链接文件>
软连接:ln -s <源文件> <新创建的链接文件>
eg:
[root@qll tmp]#
ln /tmp/data.txt data2.txt
#创建硬链接
[root@qll tmp]#rm -rf /tmp/data.txt
#删除源文件
[root@qll tmp]#cat data2.txt
#删除源文件后,链接文件仍可以正常使用
[root@qll tmp]#
ln -s /tmp/te.txt /tmp/te2.txt
#创建文件软链接
[root@qll tmp]#ln -s /bin testbin
#创建目录
软链接
[root@qll tmp]#rm -rf /tmp/te.txt
#删除源文件
[root@qll tmp]#cat /tmp/te2.txt
#删除源后,软链接无法使用
cat: te2.txt: 没有那个文件或目录
二、如何理解软硬连接:
1.软连接:
经过软连接后生成的链接文件 可以理解为windows中的快捷方式;
2.硬链接:
经过硬链接后生成的链接文件 可以大概理解为对源文件的copy;不但如此,对于源文件的内容有修改,硬链接文件会同步更新修改,始终保持和源文件的内容相同!
三、软硬链接的区别:
1.删除源文件后对软硬链接的影响:
(1).软链接:删除源文件后,软链接失效。
(类比windows中的快捷方式,删除源文件后,快捷方式一样用不了)
(2).硬链接:删除源文件后,硬链接依然有效。
(因此硬链接有防止误删文件的功能)
2.软硬链接的创建限制:
(1).软链接:可以给目录做软链接,也可以跨文件系统。
(2).硬链接:不能给目录做硬链接,不能跨文件系统做硬链接。