Linux中文件和目录的属性主要包括:索引节点(inode)、文件类型及权限、硬链接数、所归属的用户和用户组、最近修改时间等。
查看文件属性
我们可以在Linux中使用ls -lih
命令查看文件属性。
如下图所示:
索引节点Inode
文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”,每个扇区大小为512字节,操作系统读取硬盘时不会一个个扇区读取,而是一次性读取多个扇区,即一次性读取一个“块”(block)。块是文件存取的最小单位,一个块由8个连续的扇区组成。
存储文件数据的叫做数据区,除此之外硬盘还有一个Inode区,用于存放文件的属性信息及作为文件的索引,其中的信息包括文件类型、文件大小、属主、属组、时间等,注意并不包括文件名,文件名是存放在目录项(dirent)中。
每个文件都必须有一个Inode,每个Inode都有一个号码,操作系统通过inode号码来识别不同的文件。当出现Inode用光但是硬盘还未存满的情况,就无法在硬盘上创建新文件了。
文件类型
Linux文件类型与文件名是两种完全不同的概念,Linux中文件类型与文件的扩展名没有关系,不像Windows那样需要依靠文件扩展名来区分文件类型,Linux文件名只是为了操作方便而取的名字。
Linux中常见文件类型有:普通文件类型、目录文件类型、字符设备文件、块设备文件、套接字文件、管道文件、链接文件等。
我们可以通过ls -l
命令查看文件类型,看第一个字符,不同的字符表示不同文件类型,如下所示:
-
-
:普通文件,包括纯文本文件(ASCII)、二进制文件(binary)、各种压缩文件等。 -
d
:目录文件,也就是Windows中的目录,可以通过cd
命令进入。 -
b
:块设备文件,即存储数据以供系统存取的接口设备,简单而言就是硬盘。 -
c
:字符设备文件,即串行端口的接口设备,例如键盘、鼠标等。 -
s
:套接字文件,通常用在网络数据连接。 -
p
:管道文件,主要为了解决多个程序同时存取一个文件所造成的错误。 -
l
:链接文件,类似Windows下面的快捷方式。
文件权限
Linux中用户对文件一共有三种访问权限,分别是read(可读)、write(可写)、excute(可执行)。
例如用drwxr-xr-x.
来举例,第一个字母表示文件类型,而后面的rwxr-xr-x.
则表示文件权限,三个字符为一组,均为“rwx”三个参数的组合,这三个权限的位置不会改变,如果没有权限,就会出现减号-
代替。
我们来看一下rwxr-xr-x
表示什么意思:
-
前三个
rwx
表示文件属主的权限,可读、可写、可执行。 -
中间三个
r-x
表示所属用户组的权限,可读、不可写、可执行。 -
末尾三个
r-x
表示其他用户的权限,可读不可写、可执行。
硬链接
Linux系统中链接可分为两种:一种为硬链接,另一种为软链接(符号链接)。硬链接是指通过原文件的索引节点来进行链接的文件,也可以理解为通过原文件inode复制出来的一个文件。在Linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。
关于硬链接的一些知识:
-
具有相同inode节点号的多个文件是互为硬链接文件。
-
硬链接文件就是文件的另一个入口。
-
通过执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接文件。
-
可以通过给文件设置硬链接文件,来防止重要文件被误删。
-
删除硬链接文件或者删除源文件任意之一,文件实体并未被删除。只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。
-
硬链接文件是普通文件因此可以用rm 删除。
文件属主与属组
每个文件都有一个特定的所有者,也就是对该文件具有所有权的用户。而在Linux中用户是按组来分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
chown命令:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
例如更改/date目录中merge.txt文件的属主:
chgrp命令:更改文件属组
语法:
chgrp [-R] 属组名 文件名
例如更改/date目录中merge.txt文件的属组:
网友评论