:硬链接和软连接(symbolic)的区别

链接文件解释说明

链接文件分为两种:硬链接(hardlink)和软联接(symboliclink),两种链接的本质区别关键点在于inode。

inode解释

inode包含文件元信息,具体来说有以下内容:

文件的字节数;

文件拥有这的userID;

文件的GroupID;

文件的读、写、执行权限;

文件的时间戳,共有三个,ctime☞inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

链接数,即有多少文件名指向这个inode;

文件数据block的位置;

硬链接:当系统要读取一个文件时,都会先去读inodetable,一个文件对应一个inode,之后在去按照inode中的信息到块区域去讲数据取下来linux文件的链接可分为,而硬链接是直接使用了和源文件相同的inode,硬链接文件直接链接到文件放置的块区域linux文件的链接可分为,也就是说,进行硬链接的时侯实际上该文件内容没有任何变化,只是指定了相同的inode。硬链接是直接将文件和硬碟链接的

硬链接有两个限制:

不能跨文件系统,由于不同的文件系统有不同的inodetable;

图片[1]-:硬链接和软连接(symbolic)的区别-唐朝资源网

不能链接目录;

软联接:跟硬链接不同,这个是构建一个独立的文件,而这个文件的作用是当读取这个链接文件时,它会把读取的行为转发到该文件所link的文件上。

比如:现今有文件a,我们做了一个软链接文件b(只是一个链接文件,特别小),b指向了文件a,当读取b时,这么都会把读取的动作转发到a上,这样就读取到了a文件,多以,当我们删掉文件a时,文件b并不会被删掉,并且再读取b时,会提示未能打开文件,但是,当我们删掉b时,a是不会有任何影响的。

由上可以看出,虽然硬链接比较安全,由于虽然某一个文件被删除了,只要有任何一个文件存在,这么改文件对用的inode就还在,这么文件就不会消失不见!不过,不幸的是硬链接的限制太多了,包括难以做目录的link,所以在用途里面比较受限制的!反倒是软链接的使用方向较广。

构建软链接和硬链接方式

ln命令:

ln[-s][来源文件][目的文件]

ln常用的选项就一个-s,假若不加就是构建硬链接,加上就是构建软链接。

由上可以看出硬链接删掉源文件passwd,空间仍然不变。

硬链接不能用于目录

假如删掉掉源文件,则软链接文件不能读取了,并且使用命令ll查看发觉颜色也变了。

由上说明目录是可以软链接的。

硬链接不占用空间,软链接占用空间。

命令du:

图片[2]-:硬链接和软连接(symbolic)的区别-唐朝资源网

查看c盘剩余空间和文件夹大小

参数涵义如下:

-s:对每位names参数只给出占用的数据块总量;

-a:递归地显示指定目录中各文件占用的数据块数,若既不指定-s,也不指定-a,则只显示names中每一个目录及其中的各子目录所占的c盘块数;

-b:以字节为单位列举c盘空间使用情况(系统缺省以k字节为单位);

-k:以1024字节为单位列举c盘空间使用情况;

-c:最后在加上一个总计(系统缺省设置);

-l:估算所有的文件大小;

© 版权声明
THE END
喜欢就支持一下吧
点赞258 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片