exa:一個 ls 命令的現代替代品
我敢打賭你使用過 Linux 上的 ls 命令,它是你 學習 Linux 時首次接觸到的命令之一。
這個簡單的 ls
命令列出目錄的內容十分方便,但是直到我發現 exa
之前從來沒想過會有命令能替代它。
exa 命令簡介
exa 是一個命令行工具,可以列出指定路徑(如未指定則是當前目錄)的目錄和文件。這也許聽起來很熟悉,因為這就是 ls
命令所做的事情。
exa
被視作從 UNIX 舊時代延續至今的古老的 ls
命令的一個現代替代品。如其所聲稱的那樣,它有比 ls
命令更多的功能、更好的默認行為。
以下是一些你應該使用 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
和 ls
命令的選項不盡相同。例如,雖然 -l
選項在 exa
和 ls
中都給出了長列表,但 -h
選項添加了一個列標題,而不是 ls
的人類可讀選項。
exa -lh
我前面說過,exa
已經內置了 Git 集成。下面的屏幕截圖給出了 –git
標誌的演示。請注意 test_file
在 git
的 tracked
列中顯示 -N
,因為它尚未添加到存儲庫中。
exa --git -lh
下面的例子不是我的貓鍵入的。它是各種選項的組合。exa
有可供你嘗試和探索的很多選項。
exa -abghHliS
你可以通過在終端中運行以下命令來獲取完整的選項列表:
exa --help
但是,如果你想了解 exa
所提供的功能,可以查看其 Git 存儲庫 上的 官方文檔。
值得從 ls 切換到 exa 嗎?
對於類 UNIX 操作系統的新手來說,exa
可能是用戶友好的,它犧牲了在腳本中容易使用的能力,以換取「易用性」和外觀。其中,顯示得更清楚並不是一件壞事。
無論如何,ls
就像通用命令。你可以將 exa
用於個人用途,但在編寫腳本時,請堅持使用 ls
。當預期輸出與任一命令中的實際輸出不匹配時,ls
和 exa
之間一個 [或多個] 標誌的差異可能會讓你發瘋。
我想知道你對 exa
的看法。你已經嘗試過了嗎?你對它的體驗如何?
作者:Pratham Patel 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive