Linux文件系统

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。Linux文件系统,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、 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  ................

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153678.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!