关于linux:linux文件相关简介

3次阅读

共计 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]
软连贯特点:
  1. 一个软连贯的内容是它援用文件的名称;
  2. 指向的是另一个文件的门路,其大小为指向的门路字符串的长度;
  3. 不会减少援用文件 inode 的援用计数;
  4. 软连贯如果应用相对路径,是绝对于原文件的门路,不是绝对于当前目录的门路;

软链接和硬链接的区别

实质 跨设施 inode 链接数 文件夹 文件类型
硬链接 同一文件 不反对 雷同 创立会减少,删除会缩小 不反对 与源文件雷同
软链接 不同文件 反对 不同 不会变动 反对 链接文件,与源文件不同
正文完
 0