- 给出分区大小。
命令:df -h
(print sizes in powers of 1024 (e.g., 1023M))
udev
:linux设备管理器,管理/dev目录底下的设备节点
tmpfs
:基于内存的文件系统,使用内存或swap分区来存储文件
/dev/sda n
:访问这些外部设备的端口,代表第一块SATA接口的硬盘的第n个分区 - 根据文件路径找到文件管理信息(簇号,文件索引)和文件内容。
linux中的簇号即为block号
利用filefrag
命令查看文件分布在哪些block里
即:文件占有30157个块,这些块是discontinuous分布的,分为四个部分,从截图中可以看到这四个部分的起始块号和结束块号。
文件索引文件为inode,用stat
查看
如何查看文件内容:根据文件的类型不同用不同的命令,如文本文件可用vim filename
打开。 - 如何安全删除文件
rm
为安全删除文件命令,如果该文件f1
只有一个硬链接,且当前没有程序使用该文件,那么文件数据就被删除了,否则,就会出现以下的情况: - 文件的硬链接只有
f1
,但是当前有进程正在使用f1
,data的删除操作并不立即执行,而是等到正在使用f1的所有进程都对f1执行了close操作之后,,再执行data的删除操作,在此期间,进程可对f1进行正常的读写操作,因为已经将i_node
复制到内存,可直接通过i_node
访问文件数据而不再需要借助f1
。 - 当前无进程引用
f1
,但该文件有多个硬链接。data的删除操作并不执行,rm的执行结果只是切断了f1->i_node
这条连接,也就是说我们无法再通过f1
访问i_node
了,当然也就不能访问i_node
所指向的文件数据了。
删除文件数据的实质是将数据所在内存区域的标志位置为空闲,其中的数据并未清空,只是没有了i_node->data
的链接,没有办法获取data的首尾地址,我们无法访问正常data了。
- 文件删除后,如何恢复它
linux没有固定的回收站,我们看到的回收站是桌面环境的,用终端删除文件之后不会存在回收站里。
恢复方法:借用extundelete
软件。
- 确定删除文件所在分区
df -h /home
,结果为/dev/sda8
- 调用命令
sudo ./extundelete /dev/sda8 --restore-all
,结束后会在程序的目录下生成一个目录RECOVERED_FILES
- 可用
grep
命令找到所需文件。
5.对文件设置访问权限,会修改该文件在文件系统中的哪些内容?
修改权限命令:chome 777 a.txt
文件数据都储存在"块"中,而储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等则是在inode中。
用stat file
即可看到文件权限被修改。