Linux中的硬连接、软连接

1. 基础知识

  目录/文件的存储都分为元数据和真实数据,分别存储在inode和数据块中。

  inode的元数据:记录文件的属性信息,但并不包括目录名和文件名信息(该细节可能因流派、版本而有区别)。

  数据块:实际的数据;目录的数据块中记录其下目录、文件的inode,目录名,文件名等信息。

  目录和文件关系的建立:目录中的数据块信息,/目录记录其下目录、文件的inode信息,/etc目录记录也如此,循环向下,建立起文件系统。

2. 原理

  硬连接:只能针对一个文件系统内的文件建立硬连接。

      建立后,连接文件所在目录增加一条原文件的文件关联数据(猜测为:文件<--->inode对应关系),并不分配新的inode和块给建立的连接文件,不要求分配新空间。

      同时,原文件的inode会增加一条指向该inode的记录,数量上加1。(猜测,通过建立n个硬连接时,ls得到n+1的连接数推断。)

  软连接:可针对目录或文件建立软连接。

      建立一个文件,文件内容记录要指向的目录/文件。建立文件需分配inode和块,文件大小为建立连接时ln -s src dst中src的大小,如src为:/home/ap/patrol,则大小为15个字节。

3. 建立方法

  硬连接:ln 原文件 硬连接文件

  软连接:ln -s 原文件 软连接文件

4. 显示输出

  主要通过ls命令查看。

  ls -l中的第二项会显示目录\文件的直接子目录数(d,-,l中属性为d的)或硬连接数,目前还没有想明白如何统一该项的含义。

  为目录时:该项为etc下所有子目录的数量,可通过计算ls -al /etc下所有属性开头为d的目录数量(包括. 和 ..目录)获得。

  为文件时:该项为硬连接数,即为指向该文件inode的连接数量。

转载于:https://www.cnblogs.com/hoopoe/p/5678717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值