您的位置:首页 > 运维架构 > Linux

用实例区分Linux下硬链接和符号链接

2009-04-09 20:48 148 查看
我们按几下命令操作顺序新建4个文件:

touch a:新建一个空文件a

ln a ha:    建立a的一个硬链接文件ha

ln -s a sa:建立a的一个符号链接文件sa

ln -s sa ssa:建立sa的一个符号链接文件ssa

ll -i后显示如下:

9389954 -rw-rw-r-- 2 wqm wqm    0 04-09 20:28 a

9389954 -rw-rw-r-- 2 wqm wqm    0 04-09 20:28 ha

9389973 lrwxrwxrwx 1 wqm wqm    1 04-09 20:29 sa -> a

9389974 lrwxrwxrwx 1 wqm wqm    2 04-09 20:29 ssa -> sa

从上图可以得知以下信息:

a,ha的i-节点号相同,为9389954,表明是同一个文件,文件大小也相同,都是0.

sa,ssa,a的i-结点编号都不同,表明他们是不同的文件。它们都过文件名建立联系。sa的文件大小就是文件a的文件名的长度,为1.ssa的情况类似。

修改a文件,ha也随之变化。sa本身不变,只是它们指向的文件发生了变化。

删除文件a,只是将链接数减1,并未实际上删除此文件。ha不发生变化。而删除a后,sa与ssa的文件名在终端中会闪烁显示,表明它们所指向的文件不见
了,此时cat ha命令会正常显示ha的内容。而cat sa或cat
ssa则显示:没有那个文件和目录。而实际上,文件a的克隆体ha还是存在的,但是硬链接却发现不了这一点,直接说找不到文件。可见硬链接的智商程度还是
较低的,它只认文件名而已。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 终端