现代化 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 状态、图标、颜色分类应有尽有,尤其在查看项目结构或写文档的时候很是方便。

相关链接

相关推荐
GetcharZp15 小时前
玩转 Linux 机器视觉:手把手带你搞定 Ubuntu 下海康工业相机 C++ SDK
后端
橙子家15 小时前
浏览器缓存之【基础键值存储】:Local storage 和 Session storage
前端
星星在线18 小时前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒19 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x19 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
京东云开发者20 小时前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
袋鱼不重20 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
用户83562907805120 小时前
使用 Python 操作 Word 内容控件
后端·python
像我这样帅的人丶你还20 小时前
啥? 前端也要会干Java?🛵🛵🛵
后端
Hommy8820 小时前
【剪映小助手】添加贴纸接口(Add Sticker)
后端·github·剪映小助手·视频剪辑自动化·剪映api