1 文件类型

Linux下主要的文件类形可分为4种:普通文件、目录文件、设备文件和链接文件。

1.1 普通文件

普通文件是用户最常使用的文件。它包括了文本文件、数据文件、二进制可执行程序。

1.2 目录文件

在Linux中目录也是文件,其内容包含了文件名和子目录名以及指向那些文件和子目录的指针。目录文件是Linux中存储文件名的唯一地方,当把文件和目录相对应起来时,也就是用指针将其链接起来之后,就构成了目录文件。因些,在对目录文件进行操作时,通常不涉及对文件内容的操作,而只是对目录名和文件名的对应关系进行了操作。

在Linux系统中的每个文件都有一个惟一的数据,而这个数值被称为索引节点。索引节点存储在一个称作索引点表中。该表在磁盘格式化时被分配。每个实际的磁盘或分区都有自已的索引节点表。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。Linux文件系统把索引节点号1赋于根目录,这也就是Linux的根目录文件在磁盘上的地址。根目录文件包括文件名、目录名及它们各自的索引节点号的列表,Linux可以通过查找从根目录开始的一个目录链来到达系统中的任何一个文件。

1.3 设备文件

在Linux中是把设备抽象成文件,然后对设备文件的操作就像对普通文件那样进行操作。需要注意的是,Linux中设备相关的文件一般都在/dev目录下,它主要包括两种,一种是字符设备文件;一种是块设备文件。字符设备文件主要指的是串行端口的接口设备。块设备文件是指数据的读写是以块为单位的设备。如硬盘。

1.4 链接文件

链接文件类似于windows系统的快捷方式,但并不完全一样。链接文件可分为软链接文件和硬链接文件,其区别如表 1‑1所示。

软链接文件:

  • 软链接文件又叫符号链接,软链接文件包含了另一个文件的路径名,可以是任意文件或目录;
  • 软链接,可以链接不同文件系统的文件或目录;
  • 在对符号文件进行读或写操作时,系统会自动把操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件夹,而不删除源文件本身。

硬链接文件:

  • 硬链接文件是已存在另一个文件,不允许经目录创建硬链接;
  • 只有同一文件系统中的文件之间才能创建链接;
  • 对硬链接文件进行读写和删除操作时,结果和软链接相同。但是,如果删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把它当成了一个普通文件。

2 文件属性

第一个字符表示文件类型,第二个字符到第四个字符表示文件拥有者的权限,第五个字符到第七个字符表示所属组用户的权限,第八个字符到第十个字符表示其它组用户的权限。

[root@baoywdb /]# ll
total 118
dr-xr-xr-x.   2 root   root  4096 Aug 11  2020 bin
dr-xr-xr-x.   5 root   root  1024 Jul  5  2017 boot
drwxr-xr-x   18 root   root  3920 Aug 16  2022 dev
drwxr-xr-x. 118 root   root 12288 Jul 10 13:03 etc
drwxr-xr-x.  17 root   root  4096 May 29 11:12 home
drwxr-xr-x   12 root   root  4096 May 22  2020 iso
dr-xr-xr-x.  11 root   root  4096 Aug 18  2017 lib
dr-xr-xr-x.   9 root   root 12288 Aug 18  2017 lib64
drwxr-xr-x    3 tuxedo dba   4096 Sep  1  2017 local
drwx------.   2 root   root 16384 Jul  5  2017 lost+found
drwxr-xr-x.   2 root   root  4096 Aug 18  2017 media
drwxr-xr-x    2 root   root     0 May 22  2020 misc
drwxr-xr-x.   3 root   root  4096 Jul  5  2017 mnt
drwxr-xr-x    2 root   root     0 May 22  2020 net
drwxr-xr-x.   7 root   root  4096 Jul 12  2022 opt
drwxr-xr-x    5 oracle dba   4096 May 31  2022 oracle
dr-xr-xr-x  531 root   root     0 May 22  2020 proc
dr-xr-x---.  28 root   root  4096 Apr  7 11:07 root
drwxr-xr-x    2 root   root  4096 Jul 10 13:03 run
dr-xr-xr-x.   2 root   root 12288 Jul  3  2020 sbin
drwxr-xr-x.   2 root   root  4096 Jun 28  2011 srv
drwxr-xr-x   13 root   root     0 Jul 12  2022 sys
drwxrwxrwt.  16 root   root  4096 Jul 13 03:23 tmp
drwxr-xr-x.  13 root   root  4096 Jul  5  2017 usr
drwxr-xr-x.  22 root   root  4096 Oct 30  2021 var
[root@baoywdb /]#

第一个字符表示文件的类型:

① “-”表示普通文件

② “d”表示目录文件

③ “l”表示链接文件

④ “c”表示字符设备

⑤ “b”表示块设备

⑥ “p”表示命令管道

⑦ “f”表示堆栈文件

第一个字符后有3个三位字符组:

在Linux中的文件的拥有者可以把文件的访问属性设成3种不同的访问权限

  • 可读(r)4
  • 可写(w)2
  • 可执行(x)1

文件又有3个不同的用户级别:

  • 文件拥有者(u)
  • 所属的用户组(g)
  • 其它用户(o)

第一个三位字符组表示对于文件拥有者对该文件的权限;

第二个三位字符组表示文件用户组对该文件的权限;

第三个三位字符组表示系统其它用户对该文件的权限;

若该用户组对此没有权限,一般显示“-”字符。