现代化 ls 命令替代工具:EZA

前言

最近在 Linux 上使用 tree 命令时发现系统里没有这个命令,虽然可以手动安装,但想着既然都动手了,不如看看有没有更现代、更好用的替代方案。结果这一搜还真发现了一些不错的工具,不仅能代替 tree,还可以直接替换掉平时用的 ls 命令,整体体验非常棒。

相关的工具主要有两个:exalsd,它们都是基于 Rust 开发的 ls 替代品,而且在 GitHub 上的 star 数都挺高,社区也算活跃。

不过 exa 已经不再维护了,而它的一个分支项目 eza 目前仍在活跃更新,而且 star 数也已经接近 17k。权衡之后,我选择了 eza, 毕竟活跃维护对于日常使用还是非常重要的。

介绍

eza 是一款现代化的替代方案,用来取代 Unix 和 Linux 系统默认附带的 ls 命令,它在传统 ls 的基础上,提供了更多功能、更优的默认输出、更现代的风格。

它支持颜色区分文件类型、权限、Git 状态等,还支持符号链接、扩展属性等内容。最重要的是,它是一个小巧的单一二进制文件,运行非常快,安装也方便。

安装

官方提供了跨平台的安装方式,基本覆盖了常见的操作系统。

这里以 macOS 为例,使用 Homebrew 安装非常方便:

bash 复制代码
brew install eza

安装完成后,就可以直接使用 eza 命令替代原来的 ls

使用

安装完成之后,直接在终端中输入:

bash 复制代码
eza

就能看到和传统 ls 不一样的输出效果,更加清晰、可读性更强。

树状展示

我最初是为了找一个替代 tree 的工具,这一功能对我来说是刚需。好在 eza 也支持非常优雅的树状目录展示。

bash 复制代码
eza -T -L 2 -I node_modules

参数说明:

  • -T 表示以树状结构输出目录;
  • -L 表示树的层级,这里指定显示 2 层;
  • -I 表示忽略的目录或文件,这里我忽略了 node_modules,懂得都懂。

可以看到效果非常好,清晰美观,很适合查看项目结构。

添加图标

eza 还支持在输出中显示图标,让整个列表看起来更直观、信息更丰富。不过初次使用时可能会发现图标显示不正常,这是因为终端没有使用带有 Nerd Fonts 的字体。

解决办法也很简单,安装 Nerd Fonts 即可。

下载字体

打开官网:www.nerdfonts.com/font-downlo...

选择你喜欢的一款字体下载下来。

安装字体

下载之后,打开字体文件夹,找到 .ttf.otf 的字体文件,双击安装即可。你可以只安装其中一两个,也可以一次性把整套字体都装上。

配置字体

安装之后,字体文件已经在系统里了,但终端本身还需要配置一下,才能真正用上这些字体。

这里以 iTerm2 为例说明,进入:Settings > Profiles > Text > Font ,在字体选择器中找到你刚刚安装的 Nerd Font 字体,应用即可。

设置好之后,重新打开终端,就能看到 eza 输出中所有图标都能正确显示了。

别名

为了更方便地使用,我还添加了一些 alias 来简化命令,同时也把原本的 ls 替换成了 eza,这样平时操作起来更加顺手。

bash 复制代码
alias ls="eza --icons --time-style +%Y-%m-%d\ %H:%M:%S"
alias ll="ls -lh"
alias la="ll -a"
alias lg="lla --git"
alias tree="ls -T"

解释一下这些 alias 的含义:

  • ls:调用 eza,启用图标,并格式化时间显示;
  • ll:显示人类可读格式的长列表;
  • la:显示所有文件,包括隐藏文件;
  • lg:在 Git 项目中显示文件的 Git 状态;
  • tree:替代原有 tree 命令,调用 eza -T 展示树状目录。

将这些 alias 添加到 .zshrc.bashrc 等配置文件中,保存之后重新加载一下配置(或者重启终端)即可生效。

结语

eza 不仅完美替代了 tree命令,也顺便让我把平时的 ls 体验升级了一大截。功能更丰富,界面更美观,Git 状态、图标、颜色分类应有尽有,尤其在查看项目结构或写文档的时候很是方便。

相关链接

相关推荐
英俊潇洒美少年3 小时前
Vue 生产环境打包:SourceMap、压缩、混淆、加密全解 + 最佳实践
前端·javascript·vue.js
小江的记录本3 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
小马爱打代码3 小时前
Spring源码 第四篇:Spring 5 源码深度拆解:AOP 全流程核心原理
java·后端·spring
巴博尔3 小时前
UNIAPP中NVUE页面 动画
android·前端·javascript·ios·uni-app
ServBay4 小时前
2026 Mac 本地大模型部署深度解析与混合架构指南
后端·macos·aigc
一拳一个娘娘腔4 小时前
【SRC漏洞挖掘系列】第10期:GraphQL & API 安全 —— 现代 API 的“裸奔”时代
后端·安全·graphql
ZhengEnCi5 小时前
01-如何监听接口调用情况?
java·spring boot·后端
她说人狗殊途5 小时前
基于 vue-cli 创建
前端·javascript·vue.js
AZaLEan__6 小时前
前端移动端适配与 Bootstrap
前端·bootstrap·html
大家的林语冰6 小时前
Deno 2.8 正式发布,再次超越 Bun,史上最大的次版本升级诞生!
前端·javascript·node.js