关于 eza
eza 是 ls 的现代替代品,以彩色输出展示文件列表,并可显示 Git 状态与图标。支持树状视图,可与其他 shell 工具配合使用。
主要功能
- 01用 eza -la 查看含隐藏文件的详细列表
- 02用 eza --tree --level=2 以两层深度显示目录树
- 03列表带有颜色、图标与 Git 状态
- 04可与其他 shell 工具组合使用
适用场景
- 01快速了解项目的目录结构
- 02在详细列表中查看文件的权限与大小
- 03为仓库生成简洁的目录概览
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行eza --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍

eza 是历史悠久的文件列表命令行程序 ls 的现代替代品,该程序随 Unix 和 Linux 操作系统提供,并为其带来了更多功能和更好的默认设置。
它使用颜色区分文件类型和元数据。
它了解符号链接、扩展属性和 Git。
而且它体积小、速度快,并且只有一个二进制文件。
通过有意采用一些不同的设计决策,eza 试图成为一个功能更丰富、对用户更友好的 ls 版本。
eza 相较于 exa 新增的功能(不完全列表):
- 修复了 exa 于 2021 年引入的“网格错误”。
- 支持超链接。
- 显示挂载点详情。
- 输出 SELinux 上下文。
- 输出 Git 仓库状态。
- 以易读格式显示相对日期。
- 多项安全修复。
- 支持
bright终端颜色。 - 许多较小的错误修复和改进!
- 用于自定义颜色和图标的配置文件
theme.yml。
……还有很多很多,以至于一直更新这份列表都让人精疲力尽。 说真的,我们有很多很棒的功能。
试试看!
Nix ❄️
如果你已经配置好支持 flake 的 Nix,可以使用 nix run 命令试用 eza:
nix run github:eza-community/eza
Nix 将构建并运行 eza。
如果想通过这种方式传递参数,可以使用例如 nix run github:eza-community/eza -- -ol。
安装
eza 可用于 Windows、macOS 和 Linux。各平台和发行版的 具体安装说明请参阅 INSTALL.md。
命令行选项
eza 的选项几乎、但并非完全与 ls 的选项毫无相似之处。快速概览:
显示选项
点击展开
- -1、--oneline:每行显示一个条目
- -G、--grid:以网格形式显示条目(默认)
- -l、--long:显示详细信息和属性
- -R、--recurse:递归遍历目录
- -T、--tree:以树形结构递归遍历目录
- -x、--across:横向而非纵向排列网格条目
- -F、--classify=(when):在文件名旁显示类型指示符(always、auto、never)
- --colo[u]r=(when):设置何时使用终端颜色(always、auto、never)
- --colo[u]r-scale=(field):以不同方式突出显示
field的级别(all、age、size) - --color-scale-mode=(mode):在 --color-scale 中使用渐变色或固定颜色。有效选项为
fixed或gradient - --icons=(when):设置何时显示图标(always、auto、never)
- --hyperlink=(when):设置何时将条目显示为超链接(always、auto、never)
- --absolute=(mode):使用绝对路径显示条目(on、follow、off)
- -w、--width=(columns):设置屏幕宽度(以列为单位)
筛选选项
点击展开
- -a、--all:显示隐藏文件和以点开头的文件
- -d、--treat-dirs-as-files:将目录视为普通文件列出
- -L、--level=(depth):限制递归深度
- -r、--reverse:反转排序顺序
- -s、--sort=(field):选择排序字段
- --group-directories-first:将目录排在其他文件之前
- --group-directories-last:将目录排在其他文件之后
- -D、--only-dirs:仅列出目录
- -f、--only-files:仅列出文件
- --no-symlinks:不显示符号链接
- --show-symlinks:明确显示链接(与
--only-dirs、--only-files一起使用时,显示符合筛选条件的符号链接) - --git-ignore:忽略
.gitignore中提及的文件 - -I、--ignore-glob=(globs):要忽略的文件的 glob 模式(以竖线分隔)
将 --all 选项传入两次,还会显示 . 和 .. 目录。
点击展开
使用 --long(-l)运行时,可使用以下选项:
- -b、--binary:使用二进制前缀列出文件大小
- -B、--bytes:以字节为单位列出文件大小,不使用任何前缀
- -g、--group:列出每个文件所属的组
- --smart-group:仅当组名与所有者名称不同时才显示组名
- -h、--header:为每列添加标题行
- -H、--links:列出每个文件的硬链接数
- -i、--inode:列出每个文件的 inode 编号
- -m、--modified:使用修改时间戳字段
- -M、--mounts:显示挂载详情(仅限 Linux 和 MacOS)。
- -S、--blocksize:显示已分配文件系统块的大小
- -t、--time=(field):指定要使用的时间戳字段
- -u、--accessed:使用访问时间戳字段
- -U、--created:使用创建时间戳字段
- -X、--dereference:获取文件信息时解引用符号链接
- -Z、--context:列出每个文件的安全上下文
- -@、--extended:列出每个文件的扩展属性及其大小
- --changed:使用更改时间戳字段
- --git:列出每个文件的 Git 状态(已跟踪或已忽略)
- --git-repos:列出每个目录的 Git 状态(已跟踪)
- --git-repos-no-status:列出目录是否为 Git 仓库,但不显示其状态(速度更快)
- --no-git:不显示 Git 状态(始终优先于
--git、--git-repos、--git-repos-no-status) - --time-style:指定时间戳的格式。有效的时间戳样式包括 ‘
default’、‘iso’、‘long-iso’、‘full-iso’、‘relative’,或自定义样式 ‘+<FORMAT>’(例如,‘+%Y-%m-%d %H:%M’ => ‘2023-09-30 13:00’。关于格式字符串的更多说明,请参阅 _eza(1)手册页_和 chrono 文档。)。 - --total-size:显示目录的递归大小
- --no-permissions:不显示权限字段
- -o、--octal-permissions:以八进制格式列出每个文件的权限
- --no-filesize:不显示文件大小字段
- --no-user:不显示用户字段
- --no-time:不显示时间字段
- --stdin:从标准输入读取文件名
部分选项接受参数:
- 有效的 --colo[u]r 选项为 always、automatic(或简写 auto)和 never。
- 有效的排序字段为 accessed、changed、created、extension、Extension、inode、modified、name、Name、size、type 和 none。以大写字母开头的字段会将大写字母排在小写字母之前。modified 字段的别名为 date、time 和 newest,其反向排序的别名为 age 和 oldest。
- 有效的时间字段为 modified、changed、accessed 和 created。
- 有效的时间样式为 default、iso、long-iso、full-iso 和 relative。
有关用法的更多说明,请参阅 man 手册页。可通过以下方式查看:
- 在线查看仓库中的手册页
- 在终端中运行
man eza查看,适用于版本[0.18.13] - 2024-04-25
自定义主题
点击展开
Eza 最近新增了对 theme.yml 文件的支持,你可以在其中指定 LS_COLORS 和 EXA_COLORS 环境变量可用的所有主题选项,也可以为不同的文件类型和扩展名指定不同的图标。任何已设置的环境变量仍会继续生效,并且为保持向后兼容性,其优先级更高。
New 预制主题
查看官方 eza-themes 仓库中提供的主题,或贡献你自己的主题。
示例主题文件位于 docs/theme.yml,需要将其放在环境变量 EZA_CONFIG_DIR 指定的目录中,否则程序会默认在 $XDG_CONFIG_HOME/eza 中查找。
参与 eza 开发
如果你想为 eza 做出贡献,首先需要遵守我们的行为准则。 了解行为准则后,可以查看我们的 CONTRIBUTING.md, 了解更多关于实际开发的信息。