Linux中的文件参数的由来

在讲解Linux文件权限设置前,我们首先来讲解一下怎么查看Linux文件的属性。因为只有知道了文件的属性我们才能去修改它的权限(这样才是有意义的)。
你可以在终端中使用ls -al这个命令查看文件的属性。

[root@localhost 0415]# ls -al
总计 92
drwxr-xr-x  5 root root 4096 04-15 20:41 .
drwxr-xr-x 10 root root 4096 04-15 09:05 ..
-rwxr-xr-x  1 root root 9192 04-15 14:04 a.out
drwxr-xr-x  2 root root 4096 04-17 19:26 company
drwxr-xr-x  2 root root 4096 04-17 16:23 company1
-rw-r--r--  1 root root  845 04-15 10:12 demo1.cpp
-rw-r--r--  1 root root 1083 04-15 11:00 demo2.cpp
-rw-r--r--  1 root root 1806 04-15 13:46 demo3.cpp
-rw-r--r--  1 root root    0 04-15 09:45 graph
-rw-r--r--  1 root root 1620 04-15 14:23 graph.cpp
drwxr-xr-x  2 root root 4096 04-15 19:15 worker
[root@localhost 0415]# 

我们可以简单的把这些信息分成7列。
第一列代表这个文件的类型和权限。
第二列代表有多少文件名连接到此节点。
第三列表示这个文件或者目录的所有者账号(这里是root)。
第四列表示这个文件的所属用户组。
第五列是这个文件的容量大小,默认单位为B。
第六列表示这个文件的创建时间或者是最近修改的时间。
第七列表示该文件名。
注意:如果文件名前多一个”.”,则代表该文件是隐藏文件。(可以通过ls -al命令来查看)
那么大家知道这些东西代表着什么吗?
首先是这个total(总计)92是怎么来的呢?
一个文件由目录项、inode和数据块组成:
目录项:包括文件名和inode节点号。
Inode:又称文件索引节点,包含文件的基础信息以及数据块的指针。
数据块:包含文件的具体内容。
理解Inode要从文件说起,文件存储在硬盘上,硬盘最小的单位是扇区,一般一扇区512字 节,但是如果硬盘以扇区为单位读数据,那样效率太低,一般硬盘都以block(多个扇区)为单位读取数据,最常见的大小是4K。既然文件存储在block 中,那么就需要有一块存储空间放置一些诸如文件的创建者,创建时间,权限的元数据,存储元数据的地方就是Inode。
注:可以在终端输入getconf PAGESIZE来查看block的大小。
注意这里的是4K(b),不是4K(B)。
我们知道1B=8b。
如果一个文件大小是4096B,那么你就需要8个block来存储该文件,以此类推。
注意:如果一个文件只有1024K,下一个要存储的文件超过4K,那么第一个block存储完第一个文件后,下一个文件就会跳过这个block,存到后面的block中去,这就好比坐电梯。在这里就不多讲解了。
下面我们来详细讲解一下第一列的参数。
第一列的参数由10个字符组成。我们可以把它分成4组。
第一组就是第一个字符:它通常为—或者d,前者表示文件,后者表示的是目录。
剩下的9个字符可以分成3组,每3个为一组。每组均为”rwx”3个参数的组合。
r:read 文件可读
w:write 文件可写(通常只有文件所有者才有这个权限)
x:execute 文件可执行
第一组 :文件所有者的权限,通常为rw-
第二组:同用户组的权限,通常为r–
第三组:其他非本用户组的权限,通常为r–

猜你喜欢

转载自blog.csdn.net/tjy199610_10/article/details/79983037