Linux文件系统

一、 Linux文件系统

《Linux硬盘格式化》中,将新添加的磁盘b设置成了GPT分区,同时创建了两个分区sdb1和sdb2,并为两个分区分别构建了文件系统,然后进行了分区挂载,下面主要观察sdb1分区中的文件信息

1.1 树型目录结构

在sdb1分区创建几个文件和几个目录,以及它们的子目录,查看Linux中目录结构

root@Dog-li:/mnt/linux# tree
.
├── lizhi
│   ├── Go
│   ├── JAVA
│   └── main.c
├── lost+found
├── test
└── zhuyzhu
    ├── main.py
    ├── Python
    └── Rust
1.2 文件占用空间大小
#通过ll命令可以看到test文件占用了12个字节
root@Dog-li:/mnt/linux# ll
total 36
drwxr-xr-x 4 root root  4096 97 18:58 lizhi/
drwx------ 2 root root 16384 96 18:22 lost+found/
-rw-r--r-- 1 root root    12 97 18:56 test
drwxr-xr-x 4 root root  4096 97 18:59 zhuyzhu/
#查看文件内容,两个字符分别占用5个字节,中间空格占用一个字节以及结尾的换行符有占用一个字节,共12个字节
root@Dog-li:/mnt/linux# cat test 
Hello World
#通过du命令查看实际占用的磁盘空间大小
root@Dog-li:/mnt/linux# du -h test 
4.0K	test

文件本身大小只有12字节,为什么占用的磁盘空间却是4K字节(8个扇区)呢?

在文件系统中,这4K字节的空间称为一个簇,文件系统是以簇为单位发分配磁盘空间的,簇的大小是可以调节的,在初始化文件系统的时候调节

1.3 查看文件目录项
root@Dog-li:/mnt/linux# stat test 
  File: test #文件名
# 文件大小			 占用扇区数量         簇大小
  Size: 12        	Blocks: 8          IO Block: 4096   regular file
#       设备编号     Inode编号           链接数
Device: 811h/2065d	Inode: 12          Links: 1
#ACL	(644是8进制)						  用户编号                 用户组编号
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
#     2进制   110 100 100
#     8进制    6   4   4
Access: 2021-09-07 18:56:59.408209474 +0800
Modify: 2021-09-07 18:56:55.304219828 +0800
Change: 2021-09-07 18:56:55.304219828 +0800
 Birth: -

上述信息记录了一个文件大小、权限等所有基本信息,但文件存在磁盘的什么位置,由什么参数表示呢?

image-20210907195817895

如上图所示,每个磁盘中,除了存放分区表以及目录项只有,还有一个INode记录项,每个文件或文件夹都有一个INode编号,对应于INode表中的一条记录项,记录项中最关键的信息是记录了该文件的内容存放在哪些扇区上,用一个列表记录了扇区号,列表中扇区号的顺序就是文件内容的顺序

1.4 给文件授权

test文件现有的权限为rw-r–r--,现在通过chmod命令修改文件的权限

#授予所有用户对这个文件的权限
root@Dog-li:/mnt/linux# chmod 777 test 
root@Dog-li:/mnt/linux# ll
total 36
drwxr-xr-x 4 root root  4096 97 18:58 lizhi/
drwx------ 2 root root 16384 96 18:22 lost+found/
-rwxrwxrwx 1 root root    12 97 18:56 test*
drwxr-xr-x 4 root root  4096 97 18:59 zhuyzhu/
root@Dog-li:/mnt/linux# stat test 
  File: test
  Size: 12        	Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d	Inode: 12          Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-09-07 18:56:59.408209474 +0800
Modify: 2021-09-07 18:56:55.304219828 +0800
Change: 2021-09-07 19:43:56.094356958 +0800
1.5 观察文件扇区的内容
#使用debugfs命令进入到命令行,然后通过blocks命令查看文件对应的扇区号
root@Dog-li:/mnt/linux# debugfs /dev/sdb1
debugfs 1.44.1 (24-Mar-2018)
debugfs:  blocks test 
33025 
#通过bdump(block_dump)查看扇区内容
debugfs:  bdump 33025
0000  4865 6c6c 6f20 576f 726c 640a 0000 0000  Hello World.....
0020  0000 0000 0000 0000 0000 0000 0000 0000  ................

#退出命令行,删除该文件
root@Dog-li:/mnt/linux# rm test 
root@Dog-li:/mnt/linux# ll
total 32
drwxr-xr-x 5 root root  4096 97 20:04 ./
drwxr-xr-x 6 root root  4096 96 18:36 ../
drwxr-xr-x 4 root root  4096 97 18:58 lizhi/
drwx------ 2 root root 16384 96 18:22 lost+found/
drwxr-xr-x 4 root root  4096 97 18:59 zhuyzhu/
#再次查看扇区内容,文件内容依然存在于扇区上
debugfs:  bdump 33025
0000  4865 6c6c 6f20 576f 726c 640a 0000 0000  Hello World.....
0020  0000 0000 0000 0000 0000 0000 0000 0000  ................

删除文件,只是从磁盘的目录项中将该文件的目录给删除掉了,文件的内容依然存在于磁盘上,这也是文件被删除后能够恢复的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值