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

> 
> exa 是一个 Linux ls 命令的现代替代品。
> 
> 
> 


![](/data/attachment/album/202103/26/101726h008fn6tttn4g6gt.jpg "bash logo on green background")


我们生活在一个繁忙的世界里，当我们需要查找文件和数据时，使用 `ls` 命令可以节省时间和精力。但如果不经过大量调整，默认的 `ls` 输出并不十分舒心。当有一个 exa 替代方案时，为什么要花时间眯着眼睛看黑白文字呢？


[exa](https://the.exa.website/docs) 是一个常规 `ls` 命令的现代替代品，它让生活变得更轻松。这个工具是用 [Rust](https://opensource.com/tags/rust) 编写的，该语言以并行性和安全性而闻名。


### 安装 exa


要安装 `exa`，请运行：



```
$ dnf install exa

```

### 探索 exa 的功能


`exa` 改进了 `ls` 文件列表，它提供了更多的功能和更好的默认值。它使用颜色来区分文件类型和元数据。它能识别符号链接、扩展属性和 Git。而且它体积小、速度快，只有一个二进制文件。


#### 跟踪文件


你可以使用 `exa` 来跟踪某个 Git 仓库中新增的文件。


![Tracking Git files with exa](/data/attachment/album/202103/26/101751cqw4iv3zt4qwww74.png "Tracking Git files with exa")


#### 树形结构


这是 `exa` 的基本树形结构。`--level` 的值决定了列表的深度，这里设置为 2。如果你想列出更多的子目录和文件，请增加 `--level` 的值。


![exa's default tree structure](/data/attachment/album/202103/26/101751smisaiiu73wqjwiw.png "exa's default tree structure")


这个树包含了每个文件的很多元数据。


![Metadata in exa's tree structure](/data/attachment/album/202103/26/101752lr2zqepcqp022lkk.png "Metadata in exa's tree structure")


#### 配色方案


默认情况下，`exa` 根据 [内置的配色方案](https://the.exa.website/features/colours) 来标识不同的文件类型。它不仅对文件和目录进行颜色编码，还对 `Cargo.toml`、`CMakeLists.txt`、`Gruntfile.coffee`、`Gruntfile.js`、`Makefile` 等多种文件类型进行颜色编码。


#### 扩展文件属性


当你使用 `exa` 探索 xattrs（扩展的文件属性）时，`--extended` 会显示所有的 xattrs。


![xattrs in exa](/data/attachment/album/202103/26/101752tjp2m14e42g7vjdm.png "xattrs in exa")


#### 符号链接


`exa` 能识别符号链接，也能指出实际的文件。


![symlinks in exa](/data/attachment/album/202103/26/101753q2zzx6xh03vqvt32.png "symlinks in exa")


#### 递归


当你想递归当前目录下所有目录的列表时，`exa` 能进行递归。


![recurse in exa](/data/attachment/album/202103/26/101753ltaahate7vh8tthw.png "recurse in exa")


### 总结


我相信 `exa 是最简单、最容易适应的工具之一。它帮助我跟踪了很多 Git 和 Maven 文件。它的颜色编码让我更容易在多个子目录中进行搜索，它还能帮助我了解当前的 xattrs。


你是否已经用 `exa` 替换了 `ls`？请在评论中分享你的反馈。




---


via: <https://opensource.com/article/21/3/replace-ls-exa>


作者：[Sudeshna Sur](https://opensource.com/users/sudeshna-sur) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
We live in a busy world and can save time and effort by using the ls command when we need to look for files and data. But without a lot of tweaking, the default ls output isn't quite soothing to the eyes. Why spend your time squinting at black and white text when you have an alternative in exa?

[Exa](https://the.exa.website/docs) is a modern-day replacement for the regular ls command, and it makes life easier. The tool is written in [Rust](https://opensource.com/tags/rust), which is known for its parallelism and safety.

## Install exa

To install exa, run:

`$ dnf install exa`


## Explore exa's features

Exa improves upon the ls file list with more features and better defaults. It uses colors to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it's small, fast, and has just a single binary.

### Track files

You can use exa to track a new file added in a given Git repo.

![Tracking Git files with exa Tracking Git files with exa](https://opensource.com/sites/default/files/uploads/exa_trackingfiles.png)

(Sudeshna Sur, CC BY-SA 4.0)

### Tree structure

This is exa's basic tree structure. The level determines the depth of the listing; this is set to two. If you want to list more subdirectories and files, increase the level's value.

![exa's default tree structure exa's default tree structure](https://opensource.com/sites/default/files/uploads/exa_treestructure.png)

(Sudeshna Sur, CC BY-SA 4.0)

This tree includes a lot of metadata about each file.

![Metadata in exa's tree structure Metadata in exa's tree structure](https://opensource.com/sites/default/files/uploads/exa_metadata.png)

(Sudeshna Sur, CC BY-SA 4.0)

### Color schemes

By default, exa segregates different file types according to [built-in color schemes](https://the.exa.website/features/colours). It not only color-codes files and directories, but also Cargo.toml, CMakeLists.txt, Gruntfile.coffee, Gruntfile.js, Makefile, and many other file types.

### Extended file attributes

When you're exploring xattrs (extended file attributes) in exa, `--extended`

will show up in all the xattrs.

![xattrs in exa xattrs in exa](https://opensource.com/sites/default/files/uploads/exa_xattrs.png)

(Sudeshna Sur, CC BY-SA 4.0)

### Symlinks

Exa understands symlinks and also points out the actual file.

![symlinks in exa symlinks in exa](https://opensource.com/sites/default/files/uploads/exa_symlinks.png)

(Sudeshna Sur, CC BY-SA 4.0)

### Recurse

When you want to loop listings for all directories under the current directory, exa brings in recurse.

![recurse in exa recurse in exa](https://opensource.com/sites/default/files/uploads/exa_recurse.png)

(Sudeshna Sur, CC BY-SA 4.0)

## Conclusion


I believe exa is one of the easiest, most adaptable tools. It helps me track a lot of Git and Maven files. Its color-coding makes it easier for me to search through multiple subdirectories, and it helps me to understand the current xattrs.

Have you replaced ls with exa? Please share your feedback in the comments.

## 16 Comments