前言

最近需要写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默认的lseza,需要创建一个别名。修改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