常见的重要目录的意义
ls -l
输出的意义
- 第一列:规定了不同的用户对文件所拥有的权限。其中第一位表示文件的格式,具体为:
-
-
:普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 -
d
:目录,类似 Windows 系统中的文件夹。 -
b
:块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 -
c
:字符设备文件,例如键盘、鼠标等。 -
s
:套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 -
p
:管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 -
l
:链接文件,类似 Windows 系统中的快捷方式。
-
- 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
- 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
- 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
- 第五列:大小,默认单位是字节。
- 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
- 第七列:文件名或目录名。
文件主要的 3 个时间参数
- atime:最近访问时间。只要文件的内容被读取,访问时间就会更新。
- mtime:最近数据修改时间。当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
- ctime:最近状态修改时间。当文件的状态(如权限或属性)发生变化,就会相应改变这个时间。
在ls
时可以添加参数--time=atime/ctime
来控制第六行显示哪个时间。
可以使用touch -d "yyyy-mm-dd HH:mm" <filename>
来更改某个时间。
ext 文件系统
ext4 文件系统会把分区主要分为两大部分:小部分用于保存文件的 inode信息;剩余的大部分用于保存 block 信息。
node 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的ctime、atime和mtime、文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。
inode 中是不记录文件名的,文件名记录在文件所在目录的 block 中。
block 的大小可以是 1KB、2KB、4KB,默认为 4KB。block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。这多个 block 有可能是连续的,也有可能是分散的。
如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块。
硬链接和软链接
软链接:产生一个特殊的文件,该文件用来指向另一个文件,类似于 Windows 系统中给文件创建快捷方式。
硬链接:给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。
网友评论