ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

eza demo gif


eza 是 Unix 和 Linux 操作系统中随附的久经考验的文件列表命令行程序 ls 的现代替代品,它提供了更多功能和更优的默认设置。 它使用颜色来区分文件类型和元数据。 它支持符号链接、扩展属性和 Git。 并且它小巧快速,且仅为单一二进制文件

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


eza 具备 exa 中没有的功能(非详尽列表):

  • 修复了 exa 2021 版本中引入的 “网格 Bug”
  • 超链接支持。
  • 挂载点详细信息。
  • Selinux 上下文输出。
  • Git 仓库状态输出。
  • 人类可读的相对日期。
  • 多项安全修复。
  • 支持 bright 终端颜色。
  • 许多较小的 Bug 修复/变更!
  • 用于自定义颜色和图标的配置 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 中找到。

Packaging status


命令行选项

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 中使用渐变或固定颜色。有效选项为 fixedgradient
  • --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: 从 stdin 读取文件名

部分选项接受参数:

  • 有效的 --colo[u]r 选项为 alwaysautomatic(或简写为 auto)以及 never
  • 有效的排序字段为 accessedchangedcreatedextensionExtensioninodemodifiednameNamesizetypenone。以大写字母开头的字段会将大写字母排在小写字母之前。modified 字段有别名 datetimenewest,而其反向排序有别名 ageoldest
  • 有效的时间字段为 modifiedchangedaccessedcreated
  • 有效的时间样式为 defaultisolong-isofull-isorelative

请参阅 man 页面以获取有关用法的进一步文档。它们可在以下位置获取

自定义主题

点击展开

Eza 最近添加了对 theme.yml 文件的支持,您可以在其中指定所有现有的主题配置选项 可用于 LS_COLORSEXA_COLORS 环境变量,以及为不同的文件类型和扩展名指定不同图标的选项。任何已设置的环境变量将继续有效,并且为了向后兼容性将具有优先权。

预制主题

查看官方 eza-themes 仓库中可用的主题,或贡献您自己的主题。

示例主题文件可在 docs/theme.yml 中找到,需要将其放置在由环境变量 EZA_CONFIG_DIR 指定的目录中,或者默认在 $XDG_CONFIG_HOME/eza 中查找。

完整详情可在 man page 中查看,示例主题文件包含在 here

参与 eza 开发

如果你想为 eza 做出贡献,首先,你被期望遵守我们的 行为准则。 在理解行为准则之后,你可以查看我们的 CONTRIBUTING.md 以获取更多关于实际开发的信息。

Star History Chart