文件系统零散知识
来源:互联网 发布:淘宝库存监控软件 编辑:程序博客网 时间:2024/06/06 03:36
1.文件管理
文件系统描述文件在硬盘中的组织,保存在硬盘中的文件,目录,软链接。
为了更加方便的管理持久化文件存储,操作系统一般对应胖进行有规划的管理,
规划包括:
。分区
。格式化
文件系统指一个分区内,文件存储组织的方式
在Linux下,通过mount命令将分区挂载到虚拟文件系统
2,inode
一个音频分区,被格式化之后,可以认为硬盘被划分成两部分:管理数据和数据
管理数据部分保存着这个分区的分区信息,以及inode表.
inode保存文件的属性信息,stat命令能看到的信息,大部分都是保存在inode里的一个iNode占用128或256个字节,这个依赖具体的文件系统,每当在硬盘上创建一个文件/目录 时,系统为这个文件/目录分配一个inode。值得注意的是,文件名,不存在inode中,而是存在文件内容部分.
3,数据块
数据部分被简单的,根据等大尺寸划分成n块,一般每块数据块的尺寸为1024--4096,由具体文件系统决定
4,文件
当创建一个文件时,系统为该文件分配一个inode.如果往该文件写数据,那么系统为该文件分配数据库,inode会记录这个数据块的位置,当一个数据块不够用的时候,系统会继续为他分配数据块
5,目录
当创建一个目录时,系统为该目录分配一个inode,同时分配一个数据库,并且在该数据块中,记录文件好对应的inode,同时分配一个数据块,并且在该数据块中,记录文件和对应的inode
如果该目下创建文件,newfile,会为该文件创建inode,最后将newfile文件名he ==和它的indoe,做了一条记录,保存在目录的数数据块.
如果一个inode被别人引用,那么它的引入计数器加1.
6,路口和寻址
Linux系统采用以/划分的路径字符串来寻址文件
比如命令mkdir testdir,寻址和操作过程如下图:
补充:
查看磁盘信息
sudo fdisk -l
磁盘名字sda sdb....
分区名字 sda1 sda2....
分区
sudo fdisk /dev/sdb
n 创建新分区
p输出分区信息
w保存分区信息并退出
分区和挂载
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 xxyy
挂载成功之后,对xxyy目录的读写,其实实在/dev/sdb1文件系统中
开机自动挂载
通过mount挂载的目录时临时的.如果希望开机就挂载,那么可以将挂载命令写入到etc/profil.或者修改/etc、fstab文件,/etc/fstab描述了开机需要挂载的文件系统信息
去除挂载
通过手动umount去除挂载
7 硬链接和软连接
硬链接不占用inode,只占用目录项
软链接占用inode
创建链接命令ln,硬链只将对应的inode在目录总增加一个名字,并且将inode的引用计数器+1
为了可以跨文件系统和对目录进行链接,创建软链接这种软链接这个方式. ln -s
8,虚拟文件系统 VFS
内存无法加载硬盘所有内容,应为一般内存比硬盘小,但是在linux 内核中,维护了一个虚拟文件系统,将硬盘的目录结构映射到内存中,这个映射一般只包含已经被打开的文件
9, 文件删除
使用unlink命令和函数可以删除一个文件。
如果此时文件已经被打开,那么该文件也可以被unlink,但是删除操作不会立即执行,而会保留到文件关闭时执行
unlink 删除文件,如果是链接,就删除链接,如果不是链接就删除文件
rmdir 只能删除空目录
rm 会判断参数类型,如果是文件那么会调用unlink,如果是目录会调用rmdir
如果要删除非空目录,要使用rm -r, -r选项先删除目录中的文件,再调用rmdir
10 文件时间
对文件的访问,会导致文件时间发生变化,系统会自动记录用户对文件的操作的时间戳,以便将来可以查询文件修改时间
如果需要故意修改,那么可以通过utime函数,修改文件的访问时间和修改时间
touch 命令也可以将文件的时间修改为当前时间,touch命令的副作用是,如果参数所指文件不存在, 那么创建一个空文件
当用户进行打规模拷贝时,cp操作会修改文件的访问时间,如果想提高效率,可以使用-p选项,避免文件属性的修改时间
11 目录操作
创建和删除目录
mkdir和rmdir
遍历目录
opendir, closedir, readdir, rewinddir , telldir, seekdir
’
- 文件系统零散知识
- 零散知识
- 零散知识
- Oracle 零散知识
- 零散知识收集
- sharepoint零散知识汇总
- 数据库零散知识
- Drupal零散知识笔记
- php零散知识笔记
- 零散知识总结
- java零散知识
- C++ 零散知识
- MySQL零散知识
- LINUX的零散知识
- 其他零散知识1
- linux 零散知识记载
- mac 零散知识记载
- 零散知识整理
- 香蕉牛奶饮
- 数据结构—Problem E: 链表的基本运算(线性表)
- 深拷贝与写实拷贝----string
- Adaboost算法的原理与推导
- View的点击事件
- 文件系统零散知识
- 2017年3月23日考试总结
- Win10中英文输入法无法切换解决办法
- 手机App: Web App、Hybrid App、 Native App
- 模块化js编写模板
- JAVA初窥:Thread线程基础
- 设计模式系列·Facade模式之MVC的烦恼
- 蛇形填空3-3
- itoa 和_itoa_s