做什么
列出目录里的文件和子目录。Linux 第一个常用命令。
常用参数
| 参数 | 含义 |
|---|---|
-l |
详细信息(权限 + 大小 + 时间) |
-a |
显示隐藏文件(. 开头的) |
-h |
人类友好的大小(KB / MB / GB) |
-t |
按修改时间排序(最新在前) |
-r |
反向排序 |
-S |
按大小排序 |
-R |
递归列出子目录 |
-1 |
一列一个 |
-d |
只看目录本身(不展开) |
-i |
显示 inode 号 |
--color=auto |
彩色输出(多数发行版默认) |
实战
ls # 当前目录
ls /etc # 看 /etc
ls -lh # 详细 + 人类大小
ls -la # 详细 + 含隐藏
ls -lt | head # 最近改的 10 个
ls -lhS # 按大小倒序
ls -d */ # 只看子目录
ls *.log # glob:所有 .log
输出列含义
-rw-r--r-- 1 wadely wadely 1234 May 9 10:23 hello.txt
权限 链接 owner group 大小 修改时间 文件名
第一字符:- 普通文件 / d 目录 / l 软链接 / c 字符设备 / b 块设备。
坑
ls -lh大小单位是 1024(KiB 实际)—— 厂商标的 1000(KB)不一样- 文件名带空格 →
ls输出不引号,shell 脚本里要小心 - 别
ls含百万级文件的目录——非常慢,用find . -maxdepth 1或printf '%s\n' *