eza是一个现代化的、持续维护的替代品,用于取代Unix和Linux操作系统中备受尊敬的文件列表命令行程序ls
,它提供了更多功能和更好的默认设置。它使用颜色来区分文件类型和元数据。它了解符号链接、扩展属性和Git。而且它体积小、速度快,只有一个单一的二进制文件。
通过有意识地做出一些不同的决策,eza试图成为一个功能更丰富、更用户友好的ls
版本。
eza相比exa的特性(非详尽列表):
- 修复了exa 2021版本中引入的"网格错误"。
- 支持超链接。
- 显示挂载点详情。
- 输出Selinux上下文。
- 输出Git仓库状态。
- 人性化的相对日期显示。
- 多项安全修复。
- 支持"明亮"终端颜色。
- 许多小的错误修复/改动!
...还有太多优秀的功能,以至于经常更新这个列表变得令人疲惫。 说真的,我们有很多很棒的东西。
试一试!
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: 将条目显示为超链接
- --absolute=(mode): 使用绝对路径显示条目(on、follow、off)
- -w, --width=(columns): 设置屏幕宽度(列数)
过滤选项
点击展开
- **-a**、**--all**:显示隐藏文件和以点开头的文件 - **-d**、**--list-dirs**:像普通文件一样列出目录 - **-L**、**--level=(深度)**:限制递归深度 - **-r**、**--reverse**:反转排序顺序 - **-s**、**--sort=(字段)**:按哪个字段排序 - **--group-directories-first**:在其他文件之前列出目录 - **-D**、**--only-dirs**:只列出目录 - **-f**、**--only-files**:只列出文件 - **--no-symlinks**:不显示符号链接 - **--show-symlinks**:显式显示链接(与 `--only-dirs`、`--only-files` 一起使用,以显示符合过滤条件的符号链接) - **--git-ignore**:忽略 `.gitignore` 中提到的文件 - **-I**、**--ignore-glob=(glob模式)**:要忽略的文件的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=(字段):使用哪个时间戳字段
- -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
页面。它们可在以下位置获得:
- 在线仓库中
- 从版本
[0.18.13] - 2024-04-25
开始,可以在终端中通过man eza
查看
参与eza开发
如果你想为eza做出贡献,首先,你需要遵守我们的行为准则。在理解了行为准则之后,你可以查看我们的CONTRIBUTING.md以获取更多关于实际开发的信息。