欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux中的文件参数介绍

程序员文章站 2022-07-23 15:21:01
在讲解Linux文件权限设置前,我们首先来讲解一下怎么查看Linux文件的属性。因为只有知道了文件的属性我们才能去修改它的权限(这样才是有意义的)。 你可以在终端中使用ls -a...

在讲解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–