Linux 命令 ll 信息详解
ll 并不是一个独立的 Linux 命令,它几乎在所有现代 Linux 发行版中都是 ls -l 的别名(alias)。
ll → ls -l --color=auto (大多数系统默认是这样)
所以当你输入 ll 时,实际执行的是带有 -l 参数的 ls 命令,-l 代表 long format(长格式显示)。
一、典型 ll 输出样子(最常见格式)
-rw-r--r-- 1 root root 1234 3月 2 10:15 access.log
drwxr-xr-x 2 nginx nginx 4096 2月 28 14:30 backup
lrwxrwxrwx 1 user user 18 1月 15 09:40 config -> /etc/nginx/conf.d
-rwxr-xr-x 1 root root 56789 3月 1 18:22 nginx
每一行代表一个文件/目录,共有 7 个主要字段(从左到右):
| 字段位置 | 示例内容 | 含义解释 | 常见值/说明 |
|---|---|---|---|
| 1 | -rw-r–r– | 文件类型 + 权限(10 个字符) | 第一个字符是类型,其余 9 个是权限 |
| 2 | 1 / 2 / 3 | 硬链接数(有多少个硬链接指向这个 inode) | 普通文件通常是 1,目录至少是 2 |
| 3 | root / nginx | 文件所有者(owner / user) | 创建文件的用户 |
| 4 | root / nginx | 文件所属组(group) | 文件所属的用户组 |
| 5 | 1234 / 4096 | 文件大小(以字节为单位) | 目录显示的是目录本身元数据大小(通常 4096 字节) |
| 6 | 3月 2 10:15 | 最后修改时间(mtime) | 年份较旧的文件会显示年份而非时间 |
| 7 | 文件名或目录名 | 文件名(如果是符号链接,会显示 → 指向的目标) | 带颜色的文件名(依赖 –color) |
二、第一列(权限位)详解 —— 最重要的一列
权限字符串一共 10 个字符,格式如下:
类型 拥有者权限 所属组权限 其他用户权限
↓ ↓ ↓ ↓
- / d / l rwx r-x r--
| 位置 | 字符含义 | 常见字符 | 解释 |
|---|---|---|---|
| 1 | 文件类型 | - 普通文件d 目录l 符号链接b 块设备c 字符设备p 管道s socket | — |
| 2-4 | 拥有者(user/owner)权限 | r 读、w 写、x 执行,- 无权限 | 拥有者能做什么 |
| 5-7 | 所属组(group)权限 | 同上 | 同组用户能做什么 |
| 8-10 | 其他用户(others)权限 | 同上 | 除拥有者和同组外的所有人能做什么 |
权限组合速查:
| 写法 | 数字表示 | 含义 |
|---|---|---|
| rwx | 7 | 读+写+执行 |
| rw- | 6 | 读+写 |
| r-x | 5 | 读+执行 |
| r– | 4 | 只读 |
| — | 0 | 没有任何权限 |
| rwxr-xr-x | 755 | 最常见的可执行文件/目录权限 |
| rw-r–r– | 644 | 最常见的普通文件权限 |
三、文件大小字段的真相(很多人误解)
- 普通文件:显示的是真实字节数
- 目录:显示的是目录本身元数据占用的大小,通常是 4096 字节(一个 block),不是目录里所有文件加起来的大小
- 想看目录占用总大小 → 用
du -sh 目录名
四、时间字段的三种时间(ls -l 只显示一种)
Linux 文件有三种主要时间戳:
| 时间类型 | 英文 | ls -l 显示的是? | 含义 | 修改方式常见命令 |
|---|---|---|---|---|
| mtime | 修改时间 | 是的 | 文件内容最后修改时间 | echo >> file |
| atime | 访问时间 | 否 | 文件最后被读取/访问的时间 | cat file |
| ctime | 状态变更 | 否 | 元数据(权限、所有者等)变更时间 | chmod、chown |
想看全部三种时间:
stat 文件名
ls -l --time=ctime # 显示 ctime
ls -l --time=atime # 显示 atime
五、常用 ll 变种(工作中最常敲的组合)
ll -h # 人性化显示大小(K、M、G)
ll -a # 显示隐藏文件(. 开头的)
ll -A # 显示隐藏文件,但不显示 . 和 ..
ll -t # 按修改时间排序(最新在最上面)
ll -tr # 按修改时间倒序(最旧在最上面)
ll -S # 按文件大小排序
ll -Sr # 按文件大小倒序
ll -i # 显示 inode 号
ll -Z # 显示 SELinux 安全上下文(CentOS/RHEL 常用)
ll --sort=size # 按大小排序(等价 -S)
最强组合(我个人最常用):
ll -ah --time-style=long-iso --sort=time
# 显示隐藏文件 + 人性化大小 + 完整时间格式 + 按时间排序
六、如何知道 ll 到底执行了什么?
# 查看 ll 别名定义
alias ll
# 临时不使用别名
\ls -l
总结一句话
ll = ls -l
它显示的是文件的类型 + 权限 + 硬链接数 + 拥有者 + 组 + 大小 + 修改时间 + 名称,
其中权限位和文件类型是最核心、最常用来判断文件性质的信息。
有任何具体场景(比如某个权限组合看不懂、某个文件的时间很奇怪、想实现某种排序效果等),可以直接贴出来,我帮你分析。