exa:ls的现代替代品,默认彩色、自带Git状态

exa:ls的现代替代品,默认彩色、自带Git状态

exa 在 GitHub 拿到了 2.4 万 Star。

它是一个用 Rust 写的 ls 替代品。默认彩色输出、自动识别文件类型、能处理符号链接和扩展属性、内建 Git 状态显示。单二进制文件,没有依赖,下载即用。

正文顶部截图

1、ls 能干活,但 exa 更直观

ls 的标准输出只有文字,不分颜色、不标类型、文件和目录堆在一起。要看详细信息得加 -l,要看隐藏文件得加 -a,想了解 Git 状态得另开终端跑 git status。久而久之,三个命令反复切。

exa 把这些改成了默认行为。文件名带颜色,目录是蓝色、可执行文件是绿色、软链是红色加箭头指向目标对象。长格式下权限字段排列规整,Git 状态直接标在文件名后面,哪个改了、哪个没跟踪,不用额外查。

它支持显示文件的扩展属性、inode 号、文件系统块数。权限可以用八进制格式输出。时间戳有四种字段(修改、访问、创建、变更)和四种显示样式(default、iso、long-iso、full-iso)。选项组合比 ls 丰富。

本质上,exa 不是给 ls 缝缝补补。而是从零重新设计了一套文件列表的展示方式。

README区域截图

2、几个值得关注的功能

树形视图。 exa --tree 把目录按层级展开,结构一目了然。比 ls -R 那种扁平递归的输出直观很多。加 --level 限制展开深度,不怕目录层级太深刷屏。

Git 集成。 长格式下加 --git,文件后面标注状态:暂存、修改、未跟踪,以及被 .gitignore 忽略的。不需要切窗口跑 git status。

图标。 --icons 给文件类型配上图标,视觉上区分更快,找配置文件、脚本、压缩包时效率有提升。

排序和过滤。 排序字段覆盖名称、大小、类型、时间、扩展名等十几种。过滤方面,--git-ignore 跳过 .gitignore 里的文件,--only-dirs 只看目录,--ignore-glob 按模式排除。

颜色精细控制。 --colour-scale 开启文件大小色阶,大文件和小文件一眼能分辨。

3、常用组合

# 长格式,按修改时间排列
exa -l --sort=modified

# 树形加 Git 状态,限定两级
exa --tree --level=2 --git

# 全部文件,目录排前面
exa -a --group-directories-first

# 长格式带 header
exa -lh --git

# 递归展示,忽略 .gitignore 里的文件
exa -laR --git-ignore

4、安装

包管理器基本都收录了:

brew install exa       # macOS
apt install exa        # Ubuntu / Debian
pacman -S exa          # Arch
zypper install exa     # openSUSE
cargo install exa      # 通过 Rust 编译(需 rustc >= 1.66.1)

编译完后是一个单二进制文件,放到 /usr/local/bin 就能直接用。

5、需要知道的一件事

原仓库顶部标注了:exa 不再维护。作者联系不上,唯一有归档权限的人也不可及,仓库无法归档关闭。

社区分叉 eza 接过了代码和功能,持续更新。如果你现在要装,直接装 eza 即可。命令、参数、使用习惯和 exa 完全一样。

posted @ 2026-06-19 15:04  小飞技术快餐  阅读(2)  评论(0)    收藏  举报