链接文件解释说明
链接文件分为两种:硬链接(hard link)和软连接(symbolic link),两种链接的本质区别关键点在于inode。
inode解释
inode包含文件元信息,具体来说有以下内容:
文件的字节数;
文件拥有这的user ID;
文件的Group ID;
文件的读、写、执行权限;
文件的时间戳,共有三个,ctime☞inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
链接数,即有多少文件名指向这个inode;
文件数据block的位置;
硬链接:当系统要读取一个文件时,就会先去读inode table,一个文件对应一个inode,然后在去根据inode中的信息到块区域去讲数据取出来,而硬链接是直接使用了和源文件相同的inode,硬链接文件直接链接到文件放置的块区域,也就是说,进行硬链接的时候实际上该文件内容没有任何变化,只是指定了相同的inode。硬链接是直接将文件和硬盘链接的
硬链接有两个限制:
不能跨文件系统,因为不同的文件系统有不同的inode table;
不能链接目录;
软连接:跟硬链接不同,这个是建立一个独立的文件,而这个文件的作用是当读取这个链接文件时,它会把读取的行为转发到该文件所link的文件上。
例如:现在有文件a,我们做了一个软链接文件b(只是一个链接文件,非常小),b指向了文件a,当读取b时,那么就会把读取的动作转发到a上,这样就读取到了a文件,多以,当我们删除文件a时,文件b并不会被删除,但是再读取b时,会提示无法打开文件,然而,当我们删除b时,a是不会有任何影响的。
由上可以看出,似乎硬链接比较安全,因为即使某一个文件被删掉了,只要有任何一个文件存在,那么改文件对用的inode就还在,那么文件就不会消失不见!不过,不幸的是硬链接的限制太多了,包括无法做目录的link,所以在用途上面比较受限制的!反而是软链接的使用方向较广。
建立软链接和硬链接方法
ln命令:
ln [-s] [来源文件] [目的文件]
ln常用的选项就一个-s
,如果不加就是建立硬链接,加上就是建立软链接。
由上可以看出硬链接删除源文件passwd,空间依旧不变。
硬链接不能用于目录
如果删除掉源文件,则软链接文件不能读取了,而且使用命令ll
查看发现颜色也变了。
由上说明目录是可以软链接的。
硬链接不占用空间,软链接占用空间。
命令du:
查看磁盘剩余空间和文件夹大小
参数含义如下:
-s:对每个names参数只给出占用的数据块总数;
-a:递归地显示指定目录中各文件占用的数据块数,若既不指定-s,也不指定-a,则只显示names中每一个目录及其中的各子目录所占的磁盘块数;
-b:以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位);
-k:以1024字节为单位列出磁盘空间使用情况;
-c:最后在加上一个总计(系统缺省设置);
-l:计算所有的文件大小;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。