走进“yarn create vite”的源码学习

本文详细介绍了Linux中的inode概念及其在文件系统中的作用,讲解了软链接(符号链接)和硬链接的区别与创建方法,包括在Node.js中的实现。通过实例展示了软链接与硬链接在删除源文件后的不同影响,并探讨了npm link和lerna项目管理中的软链接应用。此外,文章还提到了inode信息的获取和文件的块、扇区等基础知识。
摘要由CSDN通过智能技术生成

前言

写这篇文章的原因

1.最近在做一些工程化相关的内容,有使用到 fs.symlink(target,path), 查看 Node.js 文档发现讲的就那么回事吧!所以这里详细整理下,并且记得之前在 Linux 下直接使用命令创建软链通过 ls -s source_file target_file 在想这两个参数位置有些怎么不一致呢?
2.本文是我上一篇完整工程化系列文章中的一个小插曲,上篇文章 有提到软链接,那篇没有对软硬链接没有进行详细讲解,只是简单介绍了 fs.symlink 中软链接创建的基本使用,本文进行详细展开下。
3.软连接的创建应用场景还是比较广泛,比如 npm link 调试, leran 内部模块互相引用等等。

inode

在讲解软/硬链接之前,先了解一个 linux 系统中重要的概念 inode 。众所周知,文件存储在硬盘上,硬盘的最小存储单位叫做 “扇区”( Sector,每个扇区存储 512 字节).操作系统读取硬盘的时候,不会一个个扇区地读取,因为这样效率太低,而是一次性连续读取多个扇区,这种一次性读取的连续多个扇区就是"块"( block )。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是 4KB,即连续八个 sector 组成一个 block

文件数据都储存在 "块" 中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做 inode ,中文译名为 "索引节点"

注意: 我们打开一个一个文件时,系统首先找到文件名对应的 inode 号码,然后通过 inode 号码获取inode 信息,然后根据 inode 信息中的文件数据所在 block 读出数据。

上述概念的文章内容比较多,不太容易记忆,看图!

inode 中包括了哪些内容 ?

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

1.文件的字节数
2.文件拥有者的User ID
3.文件的 Group ID
4.文件的读、写、执行权限
5.文件的时间戳,共有三个:ctimeinode上一次变动的时间,mtime 指文件内容上一次变动的时间,atime 指文件上一次打开的时间。
6.链接数,即有多少文件名指向这个 inode
7.文件数据 block 的位置

linux 命令如何获取一个文件的 inode 信息

可以直接使用 linux 命令 <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值