eza-community/eza

GitHub: eza-community/eza

一个用 Rust 编写的现代化 `ls` 替代工具,提供彩色输出、Git 状态集成、树形视图和高度可定制的文件列表功能。

Stars: 20287 | Forks: 402

# eza `ls` 的现代替代品。 Gitter [![Built with Nix](https://img.shields.io/badge/Built_With-Nix-5277C3.svg?logo=nixos&labelColor=73C3D5)](https://nixos.org) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) [![Unit tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7e1c3c52cd201030.svg)](https://github.com/eza-community/eza/actions/workflows/unit-tests.yml) [![Crates.io](https://img.shields.io/crates/v/eza?link=https%3A%2F%2Fcrates.io%2Fcrates%2Feza)](https://crates.io/crates/eza) ![Crates.io](https://img.shields.io/crates/l/eza?link=https%3A%2F%2Fgithub.com%2Feza-community%2Feza%2Fblob%2Fmain%2FLICENCE)
![eza 演示 gif](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/bab42d3038201033.png) **eza** 是经典文件列表命令行程序 `ls` 的现代替代品(`ls` 随 Unix 和 Linux 操作系统附带),它提供了更多功能和更好的默认设置。 它使用颜色来区分文件类型和元数据。 它能识别 symlinks、扩展属性和 Git。 而且它**体积小**、**速度快**,并且只是**单个二进制文件**。 通过刻意做出一些不同的设计决策,eza 试图成为一个功能更丰富、用户友好度更高的 `ls` 版本。 **eza** 中 exa 没有的功能(非详尽列表): - 修复了 exa 2021 中引入的 [“The Grid Bug”](https://github.com/eza-community/eza/issues/66#issuecomment-1656758327)。 - Hyperlink 支持。 - Mount point 详情。 - Selinux 上下文输出。 - Git repo 状态输出。 - 人类可读的相对日期。 - 多项安全修复。 - 支持 `bright` 终端颜色。 - 许多较小的错误修复/更改! - 用于自定义颜色和图标的配置 `theme.yml` 文件。 ...以及说真的,我们还有很多好东西,多到更新这个列表都变得精疲力竭。 不开玩笑,我们真的有很多好东西。

试一试!

### Nix ❄️ 如果您已经设置好 Nix 并启用了 flake 支持,可以使用 `nix run` 命令尝试 eza: ``` nix run github:eza-community/eza ``` Nix 将构建 eza 并运行它。 如果您想以这种方式传递参数,请使用例如 `nix run github:eza-community/eza -- -ol`。 # 安装 eza 适用于 Windows、macOS 和 Linux。特定平台和发行版的安装说明可以在 [INSTALL.md](INSTALL.md) 中找到。 [![Packaging status](https://repology.org/badge/vertical-allrepos/eza.svg?columns=3)](https://repology.org/project/eza/versions)

命令行选项

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**: 将条目显示为超链接 - **--absolute=(mode)**: 显示条目的绝对路径(on, follow, off) - **-w**, **--width=(columns)**: 设置屏幕宽度(以列为单位)
## 过滤选项
点击展开 - **-a**, **--all**: 显示隐藏文件和 'dot' 文件 - **-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`’,或自定义样式 ‘`+`’(例如,‘`+%Y-%m-%d %H:%M`’ => ‘`2023-09-30 13:00`’。有关格式字符串的更多规范,请参阅 _`eza(1)` 手册页_ 和 [chrono 文档](https://docs.rs/chrono/latest/chrono/format/strftime/index.html)。)。 - **--total-size**: 显示递归目录大小 - **--no-permissions**: 抑制权限字段 - **-o**, **--octal-permissions**: 以八进制格式列出每个文件的权限 - **--no-filesize**: 抑制文件大小字段 - **--no-user**: 抑制用户字段 - **--no-time**: 抑制时间字段 - **--stdin**: 从 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` 页面。可通过以下方式获取: - 在线查看 [仓库中](https://github.com/eza-community/eza/tree/main/man) - 在终端中通过 `man eza` 查看,自版本 [`[0.18.13] - 2024-04-25`](https://github.com/eza-community/eza/blob/main/CHANGELOG.md#01813---2024-04-25) 起
## 自定义主题
点击展开 **Eza** 最近增加了对 `theme.yml` 文件的支持,您可以在其中指定 `LS_COLORS` 和 `EXA_COLORS` 环境变量可用的所有现有主题选项,以及为不同文件类型和扩展名指定不同图标的选项。任何已设置的环境变量将继续工作,并为了向后兼容而优先使用。 #### **新增** 预制主题 查看官方 [eza-themes](https://github.com/eza-community/eza-themes) 仓库中可用的主题,或者贡献您自己的主题。 示例主题文件位于 `docs/theme.yml`,需要将其放置在环境变量 `EZA_CONFIG_DIR` 指定的目录中,或者默认在 `$XDG_CONFIG_HOME/eza` 中查找。 完整详情可在 [手册页](https://github.com/eza-community/eza/tree/main/man/eza_colors-explanation.5.md) 中找到,示例主题文件包含在 [此处](https://github.com/eza-community/eza/tree/main/docs/theme.yml)
# 开发 eza 如果您想为 eza 做贡献,首先,请您遵守我们的 [行为准则](https://github.com/eza-community/eza/blob/main/CODE_OF_CONDUCT.md)。 在了解行为准则之后,您可以查看我们的 [CONTRIBUTING.md](https://github.com/eza-community/eza/blob/main/CONTRIBUTING.md) 以获取关于实际开发的更多信息。 [![Star History Chart](https://api.star-history.com/svg?repos=eza-community/eza&type=Date)](https://star-history.com/#eza-community/eza&Date)
标签:Awesome, CLI, Git集成, ls替代品, Rust, WiFi技术, 可视化界面, 开发辅助, 效率工具, 文件列表, 文件系统, 系统管理, 终端美化, 网络安全审计, 网络流量审计, 通知系统, 通知系统, 通知系统, 高亮显示