exa:一個 ls 命令的現代替代品

https://linux.cn/article-13972-1.html
作者:Pratham Patel
譯者:Xingyu.Wang

我敢打賭你使用過 Linux 上的 ls 命令🔗 linuxhandbook.com,它是你 學習 Linux🔗 itsfoss.com 時首次接觸到的命令之一。

這個簡單的 ls 命令列出目錄的內容十分方便,但是直到我發現 exa 之前從來沒想過會有命令能替代它。

exa 命令簡介

exa🔗 the.exa.website 是一個命令行工具,可以列出指定路徑(如未指定則是當前目錄)的目錄和文件。這也許聽起來很熟悉,因爲這就是 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 命令🔗 itsfoss.com 即可:

sudo pacman -S exa

如果它無法通過你的包管理器安裝,請不要擔心。畢竟它是一個 Rust 包,你可以很容易地用 Cargo 安裝它。請確保在你使用的任何發行版 或 Ubuntu 上安裝了 Rust 和 Cargo🔗 itsfoss.com。

安裝 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 存儲庫🔗 github.com 上的 官方文檔🔗 github.com。

值得從 ls 切換到 exa 嗎?

對於類 UNIX 操作系統的新手來說,exa 可能是用戶友好的,它犧牲了在腳本中容易使用的能力,以換取 “易用性” 和外觀。其中,顯示得更清楚並不是一件壞事。

無論如何,ls 就像通用命令。你可以將 exa 用於個人用途,但在編寫腳本時,請堅持使用 ls。當預期輸出與任一命令中的實際輸出不匹配時,ls 和 exa 之間一個 [或多個] 標誌的差異可能會讓你發瘋。

我想知道你對 exa 的看法。你已經嘗試過了嗎?你對它的體驗如何?


via: https://itsfoss.com/exa/

作者:Pratham Patel 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux 中國 榮譽推出

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/DR99eTfKpJ8GNdTadjsLjQ