Linux有着极其丰富的文件系统,大体可分为如下几类:
网络文件系统:如nfs、cifs等;
磁盘文件系统:如ext3、ext4等;
特殊文件系统:如prco、sysfs、ramfs、tmpfs等;
一、Linux系统中一切皆文件(除进程以外)
Linux系统的顶层目录结构如下
1 / 根目录 2 3 ├── bin 存放用户二进制文件 4 5 ├── boot 存放内核引导配置文件 6 7 ├── dev 存放设备文件 8 9 ├── etc 存放系统配置文件 10 11 ├── home 用户主目录 12 13 ├── lib 动态共享库 14 15 ├── lost+found 文件系统恢复时的恢复文件 16 17 ├── media 可卸载存储介质挂载点 18 19 ├── mnt 文件系统临时挂载点 20 21 ├── opt 附加的应用程序包 22 23 ├── proc 系统内存的映射目录,提供内核与进程信息 24 25 ├── root root 用户主目录 26 27 ├── sbin 存放系统二进制文件 28 29 ├── srv 存放服务相关数据 30 31 ├── sys sys 虚拟文件系统挂载点 32 33 ├── tmp 存放临时文件 34 35 ├── usr 存放用户应用程序 36 37 └── var 存放邮件、系统日志等变化文件
二、Linux的硬链接和软连接
Linux文件被分为两部分:用户数据(user data)和元数据(meta data)。用户数据,即用户数据块(data block),记录的是文件真实内容存放的地方;元数据是文件的附加属性,如文件大小、创建时间等等信息。
在元数据中都存在一个inode号(可以理解为一个数据的索引号),而文件名只是为了读者相对于好记忆的标识,真正寻找的还是元数据的inode号,即通过文件名打开文件夹实质上是寻找inode的过程。
在Linux中为了解决文件共享的问题,引入了两种链接:硬链接(herd link)和软连接(soft link)。硬链接可以理解为一个inode号对应多个文件名,可用link或ln创建。软连接可以理解为Windows系统中文件的快捷方式。利用stat可以查看文件的inode号。
原文:https://www.cnblogs.com/weimin1314/p/10201008.html