ls 的现代替代品。
eza是 Unix 和 Linux 操作系统附带的久负盛名的文件列表命令行程序ls
的一个现代的、经过维护的替代品,赋予它更多的功能和更好的默认设置。它使用颜色来区分文件类型和元数据。它了解符号链接、扩展属性和 Git。而且它体积小、速度快并且只有一个二进制文件。
通过故意做出一些不同的决定, eza 试图成为ls
的一个功能更丰富、更用户友好的版本。
exa 中未包含的eza功能(非详尽):
修复了 exa 2021 中引入的“网格错误”。
超链接支持。
挂载点详细信息。
Selinux 上下文输出。
Git 存储库状态输出。
人类可读的相对日期。
多项安全修复。
支持bright
终端颜色。
许多较小的错误修复/更改!
用于自定义颜色和图标的配置theme.yml
文件。
......而且,太多了,以至于一直更新这个变得很累。说实话,我们有很多好东西。
如果您已经安装了支持 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
级别(全部、年龄、大小)
--color-scale-mode=(mode) :在 --color-scale 中使用渐变或固定颜色。有效选项是fixed
或gradient
--icons=(when) :何时显示图标(始终、自动、从不)
--hyperlink :将条目显示为超链接
--absolute=(mode) :显示条目及其绝对路径(on、follow、off)
-w , --width=(columns) :以列为单位设置屏幕宽度
-a , --all : 显示隐藏文件和“点”文件
-d , --list-dirs :像常规文件一样列出目录
-L , --level=(深度) : 限制递归深度
-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 : 列出每个文件的组
-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)
手册页和计时文档。)。
--total-size : 显示递归目录大小
--no-permissions : 抑制权限字段
-o , --octal-permissions : 以八进制格式列出每个文件的权限
--no-filesize : 抑制文件大小字段
--no-user : 抑制用户字段
--no-time : 抑制时间字段
--stdin : 从标准输入读取文件名
一些选项接受参数:
有效的--colo[u]r选项有always 、 automatic (或简称auto )和never 。
有效的排序字段包括access 、 changed 、 created 、 extension 、 Extension 、 inode 、 modified 、 name 、 Name 、 size 、 type和none 。以大写字母开头的字段将大写字母排序在小写字母前面。修改后的字段具有别名date 、 time和Lastest ,而其反向字段具有别名Age和oldest 。
修改、更改、访问和创建有效时间字段。
有效的时间样式有default 、 iso 、 long-iso 、 full-iso和relative 。
有关使用的更多文档,请参阅man
页。他们可用
在线仓库中
在您的终端中通过man eza
,从版本[0.18.13] - 2024-04-25
开始
Eza最近添加了对theme.yml
文件的支持,您可以在其中指定可用于LS_COLORS
和EXA_COLORS
环境变量的所有现有主题选项,以及为不同文件类型和扩展名指定不同图标的选项。任何现有的环境变量集将继续工作,并优先考虑向后兼容性。
查看官方 eza-themes 存储库中提供的主题,或贡献您自己的主题。
示例主题文件位于docs/theme.yml
中,需要放置在环境变量EZA_CONFIG_DIR
指定的目录中,或者默认在$XDG_CONFIG_HOME/eza
中查找。
手册页上提供了完整的详细信息,此处包含示例主题文件
如果您想为 eza 做出贡献,首先,您应该遵守我们的行为准则。了解行为准则后,您可以查看我们的 CONTRIBUTING.md,了解有关实际黑客攻击的更多信息。