Linux链接文件类似于windows下的快捷方式。
链接文件分为软链接和硬链接。
硬链接:硬链接只能链接普通文件,不能链接目录。
命令写法: ln 源文件名 链接文件名
软链接:软链接不占用磁盘空间。源文件删除则软链接失效,软链接可以链接目录。
命令写法:ln -s 源文件名 链接文件名
例:
硬链接
现在有一个文本文件名为ZaQiang.txt

现在我们看下该文件的属性:

该文件的inode为673600,links数为1。
然后给ZaQiang.txt硬链接一个ZaQiang_hard.txt文件。

操作命令为 ln ZaQiang.txt ZaQiang_hard.txt。
这时再来查看这两个文件

我们可以发现他们俩的inode都是673600,并且links数变为2。


并且他们两个的文件类型都为普通文件,操作权限也全都一样,创建时间一样,内容也是完全一样的。

这时我们对ZaQiang_hard.txt进行了删除操作,ZaQiang.txt的links数又变回了1。
这就跟我们的智能指针很相似,当有指针指向某个对象时,指针内部的计数器的值会加1,再有指针指向这个对象,指针内的计数器会再加1,当有指针被销毁或者指向其他地方,指针内部的计数器会减1。
这时候我们的文件名就相当于是一个指针,links就相当于是指针内部的计数器,而inode就是文件存储的地址,指针指向的地址使同一个,并且内容相同,指针释放时计数器自动减1。
对文件进行拷贝

这就可以看出来,链接并不是单纯的拷贝!拷贝出来的文件inode与源文件并不同,并且两个的links数都为1!
注意:
不能对目录进行硬链接!

软链接
对文件进行软链接


我们可以看到文件类型为l(表示链接文件),并且文件名后有->指向源文件。

并且链接文件与源文件的inode不同。

文件内容是相同的。
如果删除源文件,则软链接失效,访问时提示找不到文件。

删除源文件以后,对链接文件进行访问时系统提示找不到文件,并且链接文件名字变成红色,显示异常!
对目录进行软链接!

总结:
硬链接与软链接的区别:
软链接:
(1)软链接以路径的方式存在,类似于windows中的快捷方式。
(2)软链接可以跨文件系统,硬链接不可以。
(3)软链接可以对一个不存在的文件名进行连接。
(4)软链接可以对目录进行链接。
硬链接:
(1)硬链接以文件副本的形式存在,但不占实际空间。
(2)不允许给目录创建硬链接。
(3)硬链接只能在同一个文件系统中才能创建。
本文详细讲解了Linux系统中硬链接和软链接的概念、使用场景及区别。硬链接以文件副本形式存在,适用于普通文件,共享同一inode;软链接以路径形式存在,类似于Windows的快捷方式,可跨文件系统,对目录进行链接。
467

被折叠的 条评论
为什么被折叠?



