前言
最近需要写AI的SKILL和AGENTS,需要严格指定目录结构。
之前试过structure-codes/cli,但是这是NPM包,安装还要Node环境,且用起来也一般。自带的tree又不好看。有什么比较好的办法呢?
这就要用到现代化的Eza了。
现代化的ls替代工具:Eza
eza-community/eza是一个现代化的 ls 命令替代工具,用 Rust 编写,目标是让终端里的文件列表更清晰、更美观、更适合开发者日常使用。相比传统的 ls,Eza 提供了更好的默认展示效果,并支持颜色高亮、文件图标、符号链接识别、扩展属性、Git 状态显示以及树形目录展示等功能。
比如,普通的ls命令,换为eza是这样的:
这里是配合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 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
|