UNIX/Linux系统中的文件属性

UNIX/Linux系统中的文件属性

有Ubuntu系统的同学可以随便找一个文件夹,打开Terminal,以后输入ls -l,如下图

UNIX/Linux系统中的文件属性

我们可以看到有不同类型的文件,第一列字段表示文件的属性,比如最后一个-rwxr-xr-x,那么这个字段的含义是什么呢,引用《The Linux Command Line》中的话:

“The first 10 characters of the listing are the file attributes. The first of these characters is the file type.”

也就是说,前十个字符表示文件属性,其中,第一个字符表示文件类型,那么文件属性如下:

UNIX/Linux系统中的文件属性

  • - 表示常规文件

  • d 表示目录

  • l 表示符号链接,或称软连接

  • c 表示字符特殊文件,或称字符设备文件

  • b 表示块特殊文件,或称块设备文件

“The remaining nine characters of the file attributes, called the file mode, represent the read, write, and execute permissions for the file’s owner, the file’s group owner, and everybody else. ”

剩下的9个字符,分别表示3组的3中权限,可读r、可写w、可执行x,"-"则表示不允许,3组分别为,owner,group,world

UNIX/Linux系统中的文件属性

  • 文件
    • r 表示允许打开和读
    • w表示允许写和缩减,但不允许重命名和删除,重命名和删除是由目录属性决定的
    • x 表示可执行
  • 目录
    • r 表示如果执行属性x设置了,那么允许列出目录中的内容
    • w 表示如果执行属性x设置了,允许在目录中进行创建、删除、重命名文件
    • x 表示允许进入目录

综上所述,我们文件属性归结为

0 1-3 4-6 7-9
File Type Owner Group World
文件属性 属主权限 同组用户权限 其他用户权限
- d l c b r w x r w x r w x

那么我们之前所说的-rwxr-xr-x,表示什么意思呢,我们将其分解为

- rwx r-x r-x
二进制表示 111 101 101
常规文件 属主可读、可写、可执行 同组用户可读、不可写、可执行 其他用户可读、不可写、可执行

UNIX/Linux系统常使用八进制来表示文件属性对应的值,那么111101101,就表示为我们经常在命令中见到的755,那么常用组合有7 (rwx), 6 (rw-), 5 (r-x), 4 (r–), 以及 0 (—)