exa:一个 ls 命令的现代替代品
我敢打赌你使用过 Linux 上的 ls 命令,它是你 学习 Linux 时首次接触到的命令之一。
这个简单的 ls
命令列出目录的内容十分方便,但是直到我发现 exa
之前从来没想过会有命令能替代它。
exa 命令简介
exa 是一个命令行工具,可以列出指定路径(如未指定则是当前目录)的目录和文件。这也许听起来很熟悉,因为这就是 ls
命令所做的事情。
exa
被视作从 UNIX 旧时代延续至今的古老的 ls
命令的一个现代替代品。如其所声称的那样,它有比 ls
命令更多的功能、更好的默认行为。
exa 功能
以下是一些你应该使用 exa
替代 ls
的原因:
exa
像ls
一样可移植(在所有主流 Linux 发行版、*BSD 和 macOS 上可用)- 默认彩色输出
exa
不同格式化的“详细”输出也许会吸引 Linux/BSD 新手- 文件查询是并行进行的,这使得
exa
与ls
的性能相当 - 显示单个文件的 git 暂存或未暂存状态
exa
的另外一个不同的地方是它是用 Rust 编写的。顺便说一句,Rust 与 C 语言的执行速度相近,但在编译时减少了内存错误,使你的软件可以快速而安全地执行。
在 Linux 系统上安装 exa
exa
最近很流行,因为许多发行版开始将其包括在其官方软件库中。也就是说,你应该可以使用你的 [发行版的包管理器] 来安装它。
从 Ubuntu 20.10 开始,你可以使用 apt
命令来安装它:
sudo apt install exa
Arch Linux 已经有了它,你只需要 使用 pacman 命令 即可:
sudo pacman -S exa
如果它无法通过你的包管理器安装,请不要担心。毕竟它是一个 Rust 包,你可以很容易地用 Cargo 安装它。请确保在你使用的任何发行版 或 Ubuntu 上安装了 Rust 和 Cargo。
安装 Rust 和 Cargo 后,使用此命令安装 exa
:
cargo install exa
使用 exa
exa
有很多命令选项,主要是为了更好的格式化输出和一些提高舒适度的改进,比如文件的 git 暂存或未暂存状态等等。
下面是一些屏幕截图,展示了 exa
是如何在你的系统上工作的。
简单地使用 exa
命令将产生类似于 ls
但带有颜色的输出。这种彩色的东西可能没有那么吸引人,因为像 Ubuntu 这样的发行版至少在桌面版本中已经提供了彩色的 ls
输出。不过,ls
命令本身默认没有彩色输出。
exa
exa 命令的输出截图,没有任何额外的标志
请注意,exa
和 ls
命令的选项不尽相同。例如,虽然 -l
选项在 exa
和 ls
中都给出了长列表,但 -h
选项添加了一个列标题,而不是 ls
的人类可读选项。
exa -lh
正如我之前提到的,exa 有列标题以获得更好的“详细”输出
我前面说过,exa
已经内置了 Git 集成。下面的屏幕截图给出了 –git
标志的演示。请注意 test_file
在 git
的 tracked
列中显示 -N
,因为它尚未添加到存储库中。
exa --git -lh
演示 git 标志如何与 exa 一起工作
下面的例子不是我的猫键入的。它是各种选项的组合。exa
有可供你尝试和探索的很多选项。
exa -abghHliS
一个非常丰富多彩和详细的输出,具有用户友好的详细输出
你可以通过在终端中运行以下命令来获取完整的选项列表:
exa --help
但是,如果你想了解 exa
所提供的功能,可以查看其 Git 存储库 上的 官方文档。
值得从 ls 切换到 exa 吗?
对于类 UNIX 操作系统的新手来说,exa
可能是用户友好的,它牺牲了在脚本中容易使用的能力,以换取“易用性”和外观。其中,显示得更清楚并不是一件坏事。
无论如何,ls
就像通用命令。你可以将 exa
用于个人用途,但在编写脚本时,请坚持使用 ls
。当预期输出与任一命令中的实际输出不匹配时,ls
和 exa
之间一个 [或多个] 标志的差异可能会让你发疯。
我想知道你对 exa
的看法。你已经尝试过了吗?你对它的体验如何?
相关文章
- Win10专业版修改hosts文件后无效的原因及解决技巧!
- locust压测工具使用
- css3边框阴影效果box-shadow用法详解
- git-查看历史版本及回滚版本
- CI&CD 体系介绍
- wordpress显示文章浏览量&&显示阅读排行榜-用插件实现
- PHP获取客户端机型,可区分windows、ios、android
- Shell 编程(二):Shell 函数的高级用法
- Shell 编程(三):Shell 编程中的常用工具
- Shell 编程(四):文本三剑客之 Grep
- Shell 编程(五):文本三剑客之 sed
- 遇到的各种时间类型:UTC时间、GMT时间、本地时间、Unix时间戳
- Linux 温习(一): 系统信息和性能查看
- Linux 温习(二): 进程管理
- Linux 温习(三): 远程连接(SSH)
- Linux 温习(四): Systemd 分析与应用
- Linux 温习(五): 网络管理
- Ichunqiu云境 - Delegation Writeup
- Linux 温习(六): LVM 磁盘
- Linux 温习(七): 文件传输