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 命令行工具
每月 10,313 次下载
1MB
12K SLoC
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 中找到。
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 中使用渐变或固定颜色。有效选项是
fixed
或gradient
- --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 选项为 always、automatic(或简称 auto)和 never。
- 有效的排序字段包括 accessed、changed、created、extension、Extension、inode、modified、name、Name、size、type 和 none。以大写字母开头的字段在排序时,大写字母排在前面。修改字段的别名有 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 上进行黑客攻击
如果您想为 eza 贡献,首先,您需要遵守我们的 行为准则。在理解了行为准则之后,您可以查看我们的 CONTRIBUTING.md,以获取有关实际黑客攻击的更多信息。
依赖关系
~10–23MB
~359K SLoC