在Linux系统中,查看文件属性是日常管理和运维操作中的基础技能,掌握相关命令能够帮助用户快速了解文件类型、权限、所有者、大小、修改时间等关键信息,Linux提供了多种命令用于查看文件属性,其中最常用的是ls
命令,此外还有stat
、file
、lsattr
、getfacl
等命令,它们各自侧重于不同的属性维度,以下将详细介绍这些命令的使用方法及其输出含义。

基础文件属性查看命令:ls
ls
是Linux中最常用的列表命令,通过不同选项可以显示文件的详细属性,默认情况下,ls
仅显示文件名,而结合-l
选项(长格式)会输出更丰富的信息,执行ls -l filename
后,输出结果通常包含以下字段:
-rw-r--r-- 1 user group 4096 Oct 26 10:30 filename
各字段含义如下(从左到右):
- 文件类型与权限:第一个字符表示文件类型(为普通文件,
d
为目录,l
为符号链接等),后续9字符分为3组,分别属主、属组、其他用户的读(r)、写(w)、执行(x)权限。 - 硬链接数:表示有多少个文件名指向同一索引节点。
- 属主用户:文件的所有者用户名。
- 属组用户:文件所属的组名。
- 文件大小:以字节为单位,使用
-h
选项可显示为人类可读格式(如KB、MB)。 - 修改时间最后一次修改的时间。
- 文件名:文件或目录的名称。
常用选项组合:
-a
:显示所有文件,包括隐藏文件(以开头)。-h
:以人类可读格式显示文件大小(如1K
、234M
)。-i
:显示文件的inode号。-R
:递归显示子目录内容。
详细文件状态查看:stat
stat
命令用于显示文件的详细状态信息,包括inode信息、访问时间、修改时间、状态改变时间等,比ls
更全面,执行stat filename
,输出可能如下:

File: filename
Size: 4096 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 131075 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2023-10-26 10:30:00.000000000 +0800
Modify: 2023-10-26 10:30:00.000000000 +0800
Change: 2023-10-26 10:30:00.000000000 +0800
Birth: -
关键字段说明:
- Size:文件大小(字节)。
- Blocks:存储文件所占的块数(块大小通常为4KB)。
- Inode:文件的唯一标识符。
- Access/Modify/Change:分别表示最后访问时间、内容修改时间、状态(如权限、所有者)修改时间。
- Uid/Gid:文件所有者的用户ID和组ID。
文件类型查看:file
file
命令通过分析文件内容来判断文件类型,适用于识别二进制文件、脚本、压缩包等,执行file filename
,输出可能为:
filename: ASCII text
常见类型包括:
ASCII text
:纯文本文件。ELF 64-bit LSB executable
:64位可执行文件。gzip compressed data
:gzip压缩文件。symbolic link to ...
:符号链接文件。
扩展属性查看:lsattr与chattr
对于Linux特有的扩展文件属性(如不可修改、不可删除等),需使用lsattr
和chattr
命令。lsattr
用于查看文件的扩展属性,

lsattr filename
----i-----------e- filename
常见扩展属性标志:
i
:不可修改(immutable),即使root用户也不能删除或修改。a
:只能追加内容(append only)。e
:使用extent格式存储文件(ext4文件系统默认)。
访问控制列表查看:getfacl
getfacl
用于查看文件的访问控制列表(ACL),这是传统权限(rwx)的扩展,支持更精细的权限控制。
getfacl filename
# file: filename
# owner: user
# group: group
# flags: -s-
user::rw-
group::r--
other::r--
输出显示属主、属组及其他用户的权限,若存在ACL条目,会额外显示user:
、group:
或default:
开头的行。
综合对比与使用场景
以下表格总结了各命令的适用场景:
命令 | 主要功能 | 常用选项 | 适用场景 |
---|---|---|---|
ls |
列出文件基本信息(权限、大小等) | -l , -h , -a , -i |
快速查看文件常规属性 |
stat |
显示详细文件状态(时间、inode等) | 无 | 需要精确时间戳或inode信息时 |
file |
识别文件类型 | 无 | 判断文件是否为可执行、文本或压缩包 |
lsattr |
查看扩展文件属性 | 无 | 管理文件系统级特殊权限(如防删除) |
getfacl |
查看访问控制列表 | 无 | 检查ACL权限配置 |
相关问答FAQs
问题1:如何查看隐藏文件的详细属性?
解答:使用ls -la
命令,其中-a
选项会显示所有文件(包括隐藏文件,以开头),-l
选项以长格式输出属性,查看.bashrc
文件的属性可执行ls -la .bashrc
,输出会包含权限、所有者、大小等信息。
问题2:如何区分文件的修改时间(Modify)和状态改变时间(Change)?
解答:通过stat
命令可以明确查看这两个时间。Modify(mtime)最后一次修改的时间,例如用echo
重写文件内容会更新此时间;Change(ctime)是文件状态(如权限、所有者、硬链接数)最后一次改变的时间,例如执行chmod
或chown
会更新此时间,若仅修改文件内容而未改变状态,则mtime更新而ctime不变;反之,若仅改变权限(如chmod 755 file
),则ctime更新而mtime不变。