前言

最近需要写AI的SKILL和AGENTS,需要严格指定目录结构。

之前试过structure-codes/cli,但是这是NPM包,安装还要Node环境,且用起来也一般。自带的tree又不好看。有什么比较好的办法呢?

这就要用到现代化的Eza了。

现代化的ls替代工具:Eza

eza-community/eza是一个现代化的 ls 命令替代工具,用 Rust 编写,目标是让终端里的文件列表更清晰、更美观、更适合开发者日常使用。相比传统的 ls,Eza 提供了更好的默认展示效果,并支持颜色高亮、文件图标、符号链接识别、扩展属性、Git 状态显示以及树形目录展示等功能。

比如,普通的ls命令,换为eza是这样的:

image-20260521201620567

这里是配合Maple Mono的NerdFont版本,可以显示出特殊图标,很好看。

安装与配置

Windows下直接下载可执行文件放到Path就行了。

为了更换Powershell默认的ls为eza,需要创建一个别名。修改Powershell的默认配置文件,运行code $PROFILE即可打开。加上下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Invoke-Eza {
eza --icons=auto --group-directories-first @args
}

function ll {
eza -l --icons=auto --group-directories-first @args
}

function la {
eza -la --icons=auto --group-directories-first @args
}

function lt {
eza --tree --level=3 --icons=auto --group-directories-first @args
}

Set-Alias -Name ls -Value Invoke-Eza -Force

随后重启Powershell,就可以用很多快捷命令了。

目录树绘制

最简单的指令就是:eza --tree或者eza -T,这样子会递归整个目录的输出。

实际生产中不建议直接递归整个目录,会输出大量无用内容。因此,更推荐配合层级限制使用:

1
eza -T -L 3

其中:

1
2
-T, --tree      以树状结构递归显示目录
-L, --level=N 限制递归深度

比如,快速查看当前项目三层目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
╭─zxis@LittleBox ~/blog ‹main●›
╰─$ eza -T -L 3 --git-ignore --icons=auto
.
├── _config.landscape.yml
├── _config.yml
├── db.json.bak
├── hexo-offline.config.cjs
├── package-lock.json
├── package.json
├── scaffolds
│ ├── draft.md
│ ├── draft.md.bak
│ ├── page.md
│ └── post.md
├── source
│ ├── _data
│ │ ├── link.yml
│ │ └── widget.yml
│ ├── _posts
│ │ ├── eza-tree.md
│ │ ├── ...
│ │ └── xmousebuttoncontrol.md
│ ├── about
│ │ └── index.md
│ ├── categories
│ │ └── index.md
│ ├── link
│ │ └── index.md
│ └── tags
│ └── index.md
├── themes
│ └── butterfly
│ ├── _config.yml
│ ├── languages
│ ├── layout
│ ├── LICENSE
│ ├── package.json
│ ├── plugins.yml
│ ├── 󰂺 README.md
│ ├── README_CN.md
│ ├── scripts
│ └── source
│
└── yarn.lock