linux笔记--软链接与硬链接

inode与block

block由sector(扇区)组成,是最小的文件存取单位,用来存放数据。

inode(索引节点):每个文件至少有一个inode,存放除文件名外的文件元数据,例如:文件拥有者的id,组id,三个时间戳,block位置,文件大小,链接数(有多少个文件名指向这个inode),文件读写权限。

实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。

硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

查看某个文件的inode信息

stat example.txt

查看每个分区的inode使用情况

注意:系统中inode数量是有限的,可能存在inode满了,但磁盘未满的情况,此时不能创建文件

df -i

查看每个inode大小

sudo dumpe2fs -h /dev/hda | grep "Inode size"

查看某个文件的inode号

ls -i example.txt

软连接与硬连接

硬连接:

        多个文件名指向同一个inode,每增加一个硬连接,会使inode的连接数+1;每删除一个指向同一个inode的文件,inode的连接数-1,连接数为0时,会删除inode。

ln 源文件 目标文件  

#不能连接目录 1.迭代子目录硬连接太复杂。2.每个目录的.和..已经确定了自己的位置,而硬连接的两个目录的父目录可能不同,如果对".."硬连接,是不对的。

注意:任何一个目录的"硬链接"总数,总是等于2加上它的直接子目录总数(含隐藏目录,只包含儿子目录,不包含孙子及更小的目录)。因为创建目录时,默认会生成两个目录项:"."和".."。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。

软连接:

        软连接文件A和源文件B是不同的inode,但是A的内容是B的路径。当访问A时,系统会自动导向B(所以无论访问哪个文件,最终访问的都是B)。因此,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。

这是软链接与硬链接最大的不同:

        文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。

ln -s 源文文件或目录 目标文件或目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一个基本的计算机系统由“硬件”和“软件”组成,一台Linux设备,主要的组成如下图所示: 一般情况下,我们所说的L...
    时待吾阅读 1,668评论 0 16
  • 转载自:http://blog.csdn.net/hguisu/article/details/6122513原作...
    miaoiao阅读 1,542评论 0 7
  • Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本...
    偷风筝的人_阅读 3,272评论 1 17
  • Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。 内核、shell和文件系统一起形成了基本...
    请爱护小动物阅读 2,752评论 0 22
  • 家用压力罐是家用无塔供水压力罐的简称。早期的供水方式多采用高位水塔利用落差产生的静压来完成,无塔供水就是取消了高位...
    JD319阅读 839评论 0 0