lsd 1.2.0 是 ls 的替代品,压缩包 1895357 字节,主程序 4315136 字节,用图标、颜色和树形结构重新组织目录列表。
它要解决的是:Windows 终端里的 dir 只给一列白色文字,看不出哪个是文件夹、哪个是几 KB 的临时文件,想看一眼目录结构还得靠脑补缩进。
这次量了它在小目录和大目录下的耗时,以及输出体积跟 -l、--tree 的关系。
一个 4315136 字节的 exe
压缩包解开就是一个 exe,Rust 编译,不依赖运行库。
| 项 | 值 | 说明 |
|---|---|---|
| 压缩包 | 1895357 字节 | lsd-v1.2.0-x86_64-pc-windows-gnu.zip |
| lsd.exe | 4315136 字节 | 单文件,放在 PATH 里就能用 |
| 版本 | 1.2.0 | --version 输出一行 |
| 测试目录 | 2 类 | 一个 12 项的工作目录,一个 4000 多项的 System32 |
gnu 版和 msvc 版都有
发布页两个 Windows 构建:x86_64-pc-windows-gnu.zip 与 i686-pc-windows-msvc.zip。这次用的是 gnu 版,运行不依赖 VC 运行库。
启动开销约 175 毫秒
空目录和满目录的耗时差主要在遍历,进程启动本身占 170 毫秒上下,这是 Rust 单文件程序的常见量级。
三种写法,耗时差不多
同一个目录,加不加参数对耗时影响很小,差别体现在输出字节上。
| 参数 | 耗时 | 输出字节 |
|---|---|---|
| 无参数 | 175 ms | 73 |
| -l | 176 ms | 409 |
| --tree --depth 2 | 177 ms | 305 |
-l 的输出是默认的 5 倍
409 字节对 73 字节,多出来的部分是权限位、大小、修改时间三类字段。目录项只有一屏的时候,这 336 字节换来的信息密度是值得的。
三种写法的耗时几乎一致
175、176、177,差 2 毫秒。说明这几种模式的渲染成本可以忽略,时间全花在进程启动和目录读取上。
System32 用了 1203 毫秒
换成一个 4000 多项的真实系统目录,耗时涨了约 7 倍,输出涨到 265856 字节。
| 目录 | 耗时 | 输出字节 |
|---|---|---|
| 工作目录(12 项) | 176 ms | 409 |
| System32(4000+ 项) | 1203 ms | 265856 |
每项大约多花 0.25 毫秒
1203 减 176 是 1027 毫秒,摊到 4000 多项上,每项约 0.25 毫秒。这个数字包含读取元数据、算图标、生成颜色。
265856 字节会有明显等待感
26 万字节刷到终端上,视觉上是连续滚动好几秒。要在这个量级的目录里找东西,用 -l 不如直接用 --tree --depth 1 收窄范围。
输出长什么样
截图里上半段是 -l 的结果,下半段是 --tree --depth 1。
| 元素 | 呈现方式 |
|---|---|
| 文件夹 | 蓝色加粗,带文件夹图标 |
| 普通文件 | 白色,按扩展名分色 |
| 权限位 | 形如 -rw- ?,问号表示 Windows 上没有 POSIX 权限 |
| 大小 | 自动换算成 B、KB、MB |
| 时间 | Fri Oct 30 18:17:26 2026 这种完整格式 |

权限位后面那个问号
Windows 文件系统没有 POSIX 权限,lsd 把这一格显示成问号。看到 -rw- ? 不是出错,是它如实反映拿不到的信息。
树形模式默认只给名字
--tree --depth 1 不带大小和时间,只有缩进的名称层级。想同时看大小要再叠 -l,输出会变长很多。
什么场景值得上
每天在终端里翻目录、又想让文件夹一眼可辨的时候。
| 场景 | 合适度 | 说明 |
|---|---|---|
| 日常翻目录 | 高 | 175 毫秒启动,颜色与图标直接分辨类型 |
| 看目录结构 | 高 | --tree 给缩进层级,不用自己数缩进 |
| 列出上万项的目录 | 低 | 1203 毫秒且刷屏 26 万字节 |
| 脚本里解析输出 | 低 | 颜色与图标都是给人看的,机器解析要用别的工具 |
它替换的是 ls 的习惯,不是 dir 的功能
Windows 上长期用 dir 的人会觉得参数不熟,但常用项就三四个:-l 看详情、-a 看隐藏项、--tree 看层级。
授权与费用
Apache-2.0 许可,个人与商业环境都不收费。源码在 GitHub 上,主要语言 Rust,发布页覆盖 Windows、macOS、Linux 三平台。







