了解Linux的文件系统(一)

1 文件类型

  • 普通文件 一般的存放数据的文件 在文件按权限里面的标识是 -
  • 目录文件 目录,文件存储在目录里
  • 连接文件 指向其他文件或目录的文件
  • 其他文件 特殊用途的文件 如socket文件,tty文件,块设备和字符设备等

2 文件的存储方式

先看一张图:
Linux下文件结构
从上面的图中我们可以看出:在linux系统里,一个文件是由下面三部分构成的

  • 数据块 存储文件内容的地方
  • i结点(inode) 文件索引结点,是文件的身份证一样,存放文件的元数据,大致包含以下内容(不包含文件名):
    • iNumber inode的编号
    • File Type 文件类型
    • Link count 文件的链接数目
    • Last access time 最近一次访问的时间
    • ···· 指向文件内容的磁盘物理块的指针,文件所属用户的ID,所属用户所在的组的ID等
  • 目录项 保存了文件名和inode的编号

如果一个文件的类型是目录文件的话,那么它的内容就是这个目录里所有文件(包括该目录下的子目录)目录项的列表,也就是说目录文件的内容是n多个目录项。linux的文件系统在磁盘分区的时候,会划分出存放目录项的块,存放inode表的块和存放文件内容的块。linux在访问文件的时候一般是这样的:

  1. 先通过文件名拿到目录项,获取目录项里面的inode编号
  2. 根据inode编号,拿到相对应的inode,获取到inode中指向磁盘物理块的指针
  3. 通过指针找到相应数据块,读取或写入

3 文件链接

文件的链接分为硬链接和软连接。

3.1 硬链接

从上面的分析我们可以知道,文件的目录项指向文件的inode,在linux里面,指向一个inode可不止一个目录项,这就是硬链接的原理。所以创建硬链接就是创建一个新的目录项,指向你需要关联的文件即可,如下图所示:
硬链接示意图
硬链接的好处是允许同一个文件有多个名称并且可以在不同的路径下访问到该文件,硬链接可以防止数据的误删除,因为我们删除文件的时候是通过文件名,也就是目录项来删除的,当一个文件有多个目录项时,我们删除其中一个的时候只是删除了一个目录项,而并非删除文件的存储的数据,也不会影响到inode本身和其他硬链接,只有当删除最后一个硬链接被删除的时候,被删除文件的目录项和inode才会被删除,而被删除文件的数据块在有新的数据写入时,会被新数据覆盖,除此之外,硬链接还有如下注意点:

  • 不允许给目录创建硬链接
  • 只有在同一个文件系统中才允许创建硬链接

3.2 软链接

也叫做符号链接,类似于windows中的快捷方式。与硬链接不同的是,创建软连接是创建了一个新的普通文件,只是其内容存放了被链接文件的路径(指向一个目录项):如下图所示:
软链接示意图
软连接的好处:

  • 可以跨文件系统创建,比如当一个文件系统的空间快用完了的时候,但是还需要再该文件系统下存储大量的文件(扩大文件系统的容量需要重新分区,重新分区会格式化文件系统,但是文件系统有很多文件,备份时间很长),这时候该怎么办呢?可以在该文件系统下创建软链接,链接到一个空闲的文件系统即可。逻辑上看似文件还是存到该文件系统了,但是实际上文件是存储在新的文件系统上去了。
  • 可以对目录创建软连接
  • 可以对一个不存在的文件创建软连接
  • 当软连接所指向的文件被删除的时候,软连接就不能用了

3.3 ln命令

linux下创建文件的链接需要使用ln命令来实现,我们看一下他的简单使用:
格式:ln [选项] <被链接的文件或目录> <链接文件或目录>选项是可选的
创建软连接:ln -s source linkfile演示如下:
创建文件软链接
可以看出创建的软连接文件的权限是满的。
在演示一个创建目录的软连接:
创建目录软链接
创建硬连接:ln source linkfile演示如下:
创建硬链接
硬链接文件的权限与被链接文件一样,ls -i会列出文件的inode编号,图中可以看出硬链接文件和源文件的inode编号是一样的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值