Skip to content

Linux 文件属性

用ls –l命令查看文件时,共显示了 9 列内容(用空格划分列),它们都代表什么含义呢?

  • 第 1 列: 包含所查看文件的类型、所有者、所属组以及其他用户对该文件的权限。第 1 列共 11 位,其中第 1 位用来描述该文件的类型。上例中我们看到的文件类型是-,其实除了这个,还有dlbcs等,具体描述如下所示。

    • -表示该文件为普通文件。
    • d表示该文件为目录。
    • l表示该文件为链接文件(link file),软链接即为该类型,示例命令如下:
      sh
      # ls -l /etc/rc.local
      lrwxrwxrwx. 1 root root 13 7月 1 11:29 /etc/rc.local -> rc.d/rc.local
      上例中,第 1 列lrwxrwxrwx.的第 1 位是l,表示该文件为链接文件。
    • b表示该文件为块设备,比如 /dev/sda 就是这样的文件,磁盘分区文件就是这种类型。
    • c表示该文件为串行端口设备文件(又称字符设备文件),比如键盘、鼠标、打印机、tty 终端等都是这样的文件。
    • s表示该文件为套接字文件(socket),应用于进程之间的通信。
    • 在文件类型后面紧接着的 9 位,每 3 位为一组,上例中(lrwxrwxrwx.)的这 9 位均为rwx这 3 个参数的组合。其中,r代表可读,w代表可写,x代表可执行。前 3 位为所有者的权限,中间 3 位为所属组的权限,最后 3 位为其他非本用户组的用户的权限。

    假设一个文件的属性为-rwxr-xr--.,它代表的意思是,该文件为普通文件,文件所有者对其可读、可写且可执行,文件所属组对其可读、不可写但可执行,其他用户对其只可读。对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个用户必须要有x权限才能打开并查看该目录下的内容。例如,一个目录的属性为drwxr--r--.,其所有者为 root,只有 root 有x权限,那么除 root 之外的所有用户都不能打开这个目录。

    关于前面提到的第 1 列最后 1 位的“.”,老版本 CentOS 5 是没有这个点的,这主要是因为新版本的ls命令添加了 SELinux 或者 acl 的属性。如果文件或者目录使用了 SELinux context 的属性,这里会是一个点“.”;如果使用了 acl 的属性,这里会是一个加号“+”,你只要了解是怎么回事即可。

  • 第 2 列: 表示该文件占用的节点(inode),如果是目录,那么这个数值与该目录下的子目录数量有关。

  • 第 3 列: 表示该文件的所有者。

  • 第 4 列: 表示该文件的所属组。

  • 第 5 列: 表示该文件的大小。

  • 第 6 列、第 7 列和第 8 列: 表示该文件最后一次被修改的时间(mtime),依次为月、日以及具体时间。

  • 第 9 列: 表示文件名。