54 个版本 (9 个破坏性版本)

0.19.0 2024 年 8 月 8 日
0.18.23 2024 年 7 月 25 日
0.18.9 2024 年 3 月 27 日
0.17.0 2023 年 12 月 13 日
0.10.3 2023 年 7 月 31 日

#25 in 命令行工具

Download history 2640/week @ 2024-05-03 3021/week @ 2024-05-10 2326/week @ 2024-05-17 1638/week @ 2024-05-24 2121/week @ 2024-05-31 2591/week @ 2024-06-07 2668/week @ 2024-06-14 2363/week @ 2024-06-21 2640/week @ 2024-06-28 1702/week @ 2024-07-05 2038/week @ 2024-07-12 2623/week @ 2024-07-19 2462/week @ 2024-07-26 3272/week @ 2024-08-02 2192/week @ 2024-08-09 1715/week @ 2024-08-16

每月 10,313 次下载

MIT 许可证

1MB
12K SLoC

eza

ls 的现代替代品。

Gitter

Built with Nix Contributor Covenant

Unit tests Crates.io Crates.io

eza demo gif


eza 是一个现代、维护良好的替代品,用于经典的文件列表命令行程序 ls,该程序随 Unix 和 Linux 操作系统提供,具有更多功能和更好的默认设置。它使用颜色来区分文件类型和元数据。它了解符号链接、扩展属性和 Git。它还非常 小巧快速,并且只有 一个单一的可执行文件

通过故意做出一些不同的决策,eza 试图成为 ls 的一个功能更强大、用户更友好的版本。


eza 的功能(非详尽)

  • 修复了 exa 2021 中引入的 “网格错误”
  • 支持超链接。
  • 挂载点详细信息。
  • Selinux 上下文输出。
  • Git 仓库状态输出。
  • 可读的相对日期。
  • 几个安全修复。
  • 支持 bright 终端颜色。
  • 许多较小的错误修复/更改!

...还有很多,更新起来太累了。真的,我们有很多好东西。


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 中找到。

Packaging status


eza 的选项几乎与 ls 完全不同。快速概览

显示选项

点击展开
  • -1--oneline:每行显示一个条目
  • -G--grid:以网格形式显示条目(默认)
  • -l--long:显示扩展细节和属性
  • -R--recurse:递归到目录中
  • -T--tree:以树状形式递归到目录中
  • -x--across:按横向排序网格,而不是向下
  • -F--classify=(when):通过文件名显示类型指示符(总是、自动、从不)
  • --colo[u]r=(when):何时使用终端颜色(总是、自动、从不)
  • --colo[u]r-scale=(field):突出显示 field 的级别(all、age、size)
  • --color-scale-mode=(mode):在 --color-scale 中使用渐变或固定颜色。有效选项是 fixedgradient
  • --icons=(when):何时显示图标(总是、自动、从不)
  • --hyperlink:将条目显示为超链接
  • --absolute=(mode):以绝对路径显示条目(on、follow、off)
  • -w--width=(columns):以列设置屏幕宽度

过滤选项

点击展开
  • -a--all:显示隐藏和 'dot' 文件
  • -d--list-dirs:将目录列表为常规文件
  • -L--level=(depth):限制递归深度
  • -r--reverse:反转排序顺序
  • -s--sort=(field):按哪个字段排序
  • --group-directories-first:在其它文件之前列出目录
  • -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:列出每个文件的组
  • -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:从 stdin 读取文件名

某些选项接受参数

  • 有效的 –colo[u]r 选项为 alwaysautomatic(或简称 auto)和 never
  • 有效的排序字段包括 accessedchangedcreatedextensionExtensioninodemodifiednameNamesizetypenone。以大写字母开头的字段在排序时,大写字母排在前面。修改字段的别名有 datetimenewest,而其反义别名为 ageoldest
  • 有效的时间字段包括 modifiedchangedaccessedcreated
  • 有效的时间样式包括 defaultisolong-isofull-isorelative

有关使用方法的更多文档,请参阅 man 页面。它们可在以下位置获取:

在 eza 上进行黑客攻击

如果您想为 eza 贡献,首先,您需要遵守我们的 行为准则。在理解了行为准则之后,您可以查看我们的 CONTRIBUTING.md,以获取有关实际黑客攻击的更多信息。

Star History Chart

依赖关系

~10–23MB
~359K SLoC