为什么我在 Linux 上使用 exa 而不是 ls

Exa 是 Linux ls 命令的现代替代品。
123 位读者喜欢这篇文章。
bash logo on green background

Opensource.com

我们生活在一个繁忙的世界中,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但是,如果不进行大量调整,默认的 ls 输出对眼睛来说并不那么舒适。当您有 exa 这样的替代方案时,为什么还要花时间眯着眼睛看黑白文本呢?

Exa 是常规 ls 命令的现代替代品,它使生活更轻松。该工具使用 Rust 编写,Rust 以其并行性和安全性而闻名。

安装 exa

要安装 exa,请运行

$ dnf install exa

探索 exa 的功能

Exa 在 ls 文件列表的基础上进行了改进,具有更多功能和更好的默认设置。它使用颜色来区分文件类型和元数据。它了解符号链接、扩展属性和 Git。而且它体积小、速度快,并且只有一个二进制文件。

跟踪文件

您可以使用 exa 来跟踪在给定 Git 仓库中添加的新文件。

树状结构

这是 exa 的基本树状结构。级别决定了列表的深度;此处设置为 2。如果要列出更多子目录和文件,请增加级别的值。

此树包含有关每个文件的许多元数据。

颜色方案

默认情况下,exa 根据内置颜色方案隔离不同的文件类型。它不仅对文件和目录进行颜色编码,还对 Cargo.toml、CMakeLists.txt、Gruntfile.coffee、Gruntfile.js、Makefile 和许多其他文件类型进行颜色编码。

扩展文件属性

当您在 exa 中浏览 xattrs(扩展文件属性)时,--extended 将显示所有 xattrs。

Exa 理解符号链接,并指出实际文件。

递归

当您要循环列出当前目录下的所有目录时,exa 会引入递归。

结论

我相信 exa 是最简单、最易适应的工具之一。它可以帮助我跟踪许多 Git 和 Maven 文件。它的颜色编码使我可以更轻松地搜索多个子目录,并且可以帮助我了解当前的 xattrs。

您是否已将 ls 替换为 exa?请在评论中分享您的反馈。

接下来阅读什么
Sudeshna is from Kolkata and currently working for the Red Hat Middleware team in Pune, India. She loves to explore different open source projects and programs. She started contributing to Open Source a couple of years back as an Hacktober Participant since then she has been an avid blogger at Dzone on Python and Data Science. She enjoys her free time stargazing and loves continental cuisine. She is an RHCSA and is working her way to RHCA.
Sudeshna 来自加尔各答,目前在印度浦那的红帽中间件团队工作。她喜欢探索不同的开源项目和程序。几年前,她作为 Hacktober 参与者开始为开源做贡献,从那时起,她一直是 Dzone 上关于 Python 和数据科学的狂热博主。她喜欢在空闲时间观星,并热爱欧式美食。

16 条评论

其中一些屏幕截图难以阅读。

exa 输出本身难以阅读——在 konsole 中我使用的淡黄色背景上,“exa -l”的某些列中稍亮的黄色几乎是不可见的。我不仅不知道该列中显示的是什么数据,而且控制颜色也非常复杂。

回复 ,作者 Greg P

不错的发现!很棒的文章!

我很想使用这个。我差点将 ls/ll 别名为 exa,直到我意识到这个工具不能正确支持 SELinux 文件上下文以及“ls -Z”的简单输出。不幸的是,这对我是个致命的缺陷。:(

我喜欢 exa。它比 ls 漂亮得多,并且 git 和 tree 功能非常棒。我编写了这个包装脚本,以便外观和开关与 ls 几乎相同,因此您不必记住任何新的开关。

https://gist.github.com/eggbean/74db77c4f6404dd1f975bd6f048b86f8

exa 看起来很有趣,但我不确定它是否真的为我的工作流程带来了任何额外的价值;它可以做的所有事情都已经存在,它基本上将多个工具组合成一个,因此不遵循 unix 哲学。这不一定是坏事,但在这种情况下,我更喜欢使用默认工具。

bash 中也已经有一个 tree 命令,它做的事情类似。
查看“man tree”以了解其选项,这些选项非常丰富。

这很好,我会尝试 exa

看起来像一个很酷的编程项目,但总的来说,为什么要改变已经运行良好的东西...并且还破坏了 UNIX 哲学。

很棒的工具。我从来不知道我不喜欢 `ls`,但哇,exa 真是好太多了!

在我的 Ubuntu 上,exa 比 ls 大 6 倍(903k 对 146k)。你能解释一下为什么吗?是不是太大了?

您好 Sudeshna,我仍然觉得给眼睛带来缓解的不是颜色。最重要的是使用 ```ls -lrt``` 获得类似的视图,而不是安装第三方工具。正如 kakadu 指出的那样,它比 ls 大约 6 倍。无论如何,这是一篇很棒的文章

我不认为 exa 可以或将会取代 ls,但它似乎是一个不错的文本模式补充。我个人喜欢 ranger,尤其是 vifm,它们具有类似的目的(浏览文本模式但具有视觉效果)。谢谢你的文章 :)

我花了一段时间才发现这个软件包不在 RHEL 或 CentOS 仓库中。只有 Fedora。

我已经习惯了 https://github.com/supercrabtree/k,已经使用了多年 - 它速度有点慢,但给了我 exa 没有的额外功能

我不明白... 所以,使用 exa 做所有我可以用 ls 做的事情?

认为我唯一不能用 ls 做的是树状输出,但我使用这个,如果我想要目录中所有文件的树状输出,它会写入文件。

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' > $tree.txt"

idk... 看不到使用 exa 的必要性,除非它可以做一些非常酷的事情,否则我无法做到。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.