共计 1213 个字符,预计需要花费 4 分钟才能阅读完成。
简介
目前的大部分 Linux 文件系统都默认采纳 ext4 文件系统,Linux 的文件系统分层构造采纳 FHS 规范,具体详解 http://www.pathname.com/fhs/,文件和目录被组织成一个单根倒置树结构,规范目录构造见下图。
文件类型
Linux 下的文件类型次要有以下几种类型:
- 一般文件
d 目录文件
b 块设施
c 字符设施
l 链接文件
p 管道文件
s 套接字文件
文件通配符
文件通配符能够匹配符合条件的现有文件,常见通配符如下所示:
* 零个或多个字符,但不匹配暗藏文件
? 任何单个字符
~ 以后用户家目录
~XX XX 用户家目录
[0-9] 匹配数字 0 - 9 中的某一个字符
[a-z]
[A-Z]
[hello] 匹配列表中的任何一个字符
[^hello] 匹配列表中所有字符以外的任何一个字符
删除某一文件夹下的所有文件rm -rf * .[^.]*
文件元数据和节点表构造
文件的属性信息,例如文件的大小、工夫、类型等,称为文件的元数据 (meta data)。
这些数据寄存在 node 表中,第一个 node 表记录对应保留了如下信息:
inode number 节点编号
文件类型
权限
UID
GID
链接数(执行该文件的名称个数)文件大小和不同工夫戳
指向磁盘上文件的数据块指针
无关文件的其余数据
第一条记录如图所示:
一个目录的内容是目录下的文件名和文件 inode 号的对应关系。
cp 命令:
- 调配一个闲暇的 inode 号,在 inode 表中生成新条目;
- 在目录中创立一个目录项,将名称与 inode 编号关联;
- 拷贝数据生成新的文件;
rm 和 node
- 链接数递加,当链接数减为 0 时,把数据块放到闲暇列表中;
- 删除目录项(文件名和 inode 号的关联关系);
- 数据实际上不会马上被删除,但当另一个文件应用数据块时将被笼罩;
立刻删除大文件范例:
cat/dev/null > /var/log/bigfile
mv 和 node
- 如果 mv 的源文件和指标文件在雷同分区,则用新的文件名创立新的目录项,inode 号不变;
- 删除旧的文件名;
- 不影响 inode 表(除工夫戳)或磁盘上的数据;
不在同一分区:相当于 cp 和 rm
硬链接与软链接
硬链接
硬链接实质上就是给文件起一个新名称,本质上是同一个文件;具备雷同的 inode 号,并且会减少该文件的链接数。
格局:
ln filename [linkname]
当 rm 删除文件时,链接数递加,当链接数为 0 时,文件被标记为删除;
软链接 / 符号链接
软连贯文件实质上和原文件不是同一个文件;
格局:
ln -s filename [linkname]
软连贯特点:
- 一个软连贯的内容是它援用文件的名称;
- 指向的是另一个文件的门路,其大小为指向的门路字符串的长度;
- 不会减少援用文件 inode 的援用计数;
- 软连贯如果应用相对路径,是绝对于原文件的门路,不是绝对于当前目录的门路;
软链接和硬链接的区别
实质 | 跨设施 | inode | 链接数 | 文件夹 | 文件类型 | |
---|---|---|---|---|---|---|
硬链接 | 同一文件 | 不反对 | 雷同 | 创立会减少,删除会缩小 | 不反对 | 与源文件雷同 |
软链接 | 不同文件 | 反对 | 不同 | 不会变动 | 反对 | 链接文件,与源文件不同 |
正文完