linux链接文件



Linux文件管理特性


文件都有文件名与数据,在 Linux 上被分成两个部分:用户数据     (user data) 与元数据 (metadata)。


用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方,元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。


在Linux中元数据中的inode 号(inode 是文件元数据一部分但其并不    包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人的记忆和使用,系统或程序通过 inode 号找    正确文件数据块。



为什么会有链接文件


为解决文件的共享使用,Linux 系统引入了链接,链接为Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。创建链接文件可以给文件和目录创建替代名或别名。



分类


硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)


ln source_file target_file


建立硬链接


ln [-s或P] source_file target_file


-s:建立软连接


-P:建立硬链接



硬链接和软连接的区别


1.硬链接


若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之 ,硬链接就是同一个文件使用了多个别名。只能在同一个文件系统来链接文件,源文件和目标文件同一个文件,当有多个硬链接文件时,删除其中一个则是删除了一个文件名而已,硬链接数少1个。


由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:


1)文件有相同的 inode 及 data block;


2)只能对已存在的文件进行创建;


3)不能交叉文件系统进行硬链接的创建;


4)不能对目录进行创建,只可对文件创建;


5)删除一个硬链接文件并不影响其他有相同 inode 号的文件。


link1.png


2.软链接


若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。


可在不同的文件系统来链接文件,源文件和目标文件是不同文件,有不同的大小,是2个文件, 目标文件的内容是源文件的inode号指向源文件,像windows中的快捷方式一样。


建立了软连接后,软连接文件的大小是指向的目标文件的文件名的大小;


软链接与硬链接不同,软链接创建与使用没有类似硬链接的诸多限制  ;


软链接有自己的文件属性及权限等;


可对不存在的文件或目录创建软链接;


软链接可交叉文件系统;


软链接可对文件或目录创建;


创建软链接时,链接计数 i_nlink 不会增加;


删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被 指向路径文件被重新创建,死链接可恢复为正常的软链接)。


链接文件命令操作,创建软硬链接,查看软硬链接文件及其大小,删除软硬链接。


示例


创建文件,用标准输入设备输出到wj.txt


link2.png


建立软链接,同时查看这个文件,软链接是两个文件


link3.png


删除软链接,发现软链接变成了红色,红色代表死链接


link4.png


再次建立wj.txt文件,软链接变成了绿色


link5.png


软链接是两个不同的文件


link6.png


建立硬链接,wj.txt,文件的大小是一样的,但是他们的硬链接数发生了改变,变成2。硬链接和源文件是指向的是同一个数据块,只是起了一个别名


link7.png


再次创建一个硬链接数,变成了3,同样指向同一个数据块


link8.png


删掉其中一个,发现硬链接数少1


link9.png


删掉源文件,发现软链接变成了一个死链接,原来的硬链接数也少了


link90.png


创建文件,软链接有了,但是没有硬链接


link91.png


删除软链接,并不影响源文件


link92.png



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

有一位课程导师想与你聊聊

客服热线 400-862-8862

回到顶部