爲什麼我在 Linux 上不再使用 ls 命令

如果您使用 Linux 和類 Unix 的操作系統,那麼您肯定會熟悉或使用 ls 命令行實用程序。它列出了關於文件或目錄的信息。作爲一個已有幾十年歷史的命令,ls 並沒有提供您可能想要的現代功能,例如 Git 支持、彩色和樹視圖輸出。這就是 exa 工具出現的意義,是 Linux ls 命令的現代替代品。

exa:使用 Rust 語言編寫的 ls 文件列表命令替代品

與 ls 類似,exa 也是一個列出文件的免費開源命令行實用程序。但是,exa 輕便快捷,用友好,具有更多的特性和更好的查詢性能。

如果你經常涉及列出數百個文件並與之交互,則 exa 可以通過使用並行查詢在幾秒鐘內顯示輸出,從而幫助您減少很多工作。

不僅是快速查詢,它還有助於輕鬆識別文件類型和元數據,默認情況下,文件類型和元數據根據文件擴展名的顏色會有所不同。

exa vs ls

如上圖所示,默認情況下,exa 還會輸出易於我們查看的的文件大小。雖然您需要對 ls 命令使用 - h 或 --human - 可讀選項。

此外,exa 帶有用於樹形視圖輸出的內置工具,您還可以將其與文件信息結合使用。

樹形視圖輸出

與 exa 和 ls 區別最有趣的功能是對 Git 版本控制系統的支持。

如果您位於 Git 存儲庫中,並且想查看自上次提交以來是否有任何文件更改或修改,而沒有安裝 Git 並使用 git status,則可以將 –git 選項與 exa 一起使用。它將在元數據表中添加一個新的 Git 列,其中包含兩個描述暫存或未暫存狀態的字符。

Git 集成

如何在 Ubuntu 和其他 Linux 發行版上安裝 Exa?

有趣的是,exa 是一個獨立的二進制文件,不需要安裝任何依賴項。唯一需要安裝的是下載操作系統的二進制文件並將其放在 $PATH 環境變量中列出的目錄(最可能是 / usr/bin/)中。

但是,如果您發現此手動方法很困難,則另一種(最簡單的)安裝 exa 的方法是使用系統的默認軟件包管理器。

對於 Debian 和 Ubuntu 20.10+,您可以運行:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install exa

在 Arch Linux 上

linuxmi@linuxmi:~/www.linuxmi.com$ pacman -S exa

在 Fedora 上

linuxmi@linuxmi:~/www.linuxmi.com$ dnf install exa

對於 Gentoo

linuxmi@linuxmi:~/www.linuxmi.com$ emerge sys-apps/exa

在 openSUSE 上

linuxmi@linuxmi:~/www.linuxmi.com$ zypper install exa

在 Fedora 上

linuxmi@linuxmi:~/www.linuxmi.com$ dnf install exa

此外,如果您使用的是 macOS,並且已經安裝了 Homebrew 軟件包管理器,請運行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ brew install exa

最後,您還可以使用源代碼,所需的依賴項並按照此處給出的說明進行編譯和構建。

如何使用 Exa?

列出具有元數據的文件

使用 --long 或 - l 選項,您可以顯示文件及其元數據。

linuxmi@linuxmi:~/www.linuxmi.com$ exa -l

列出元數據

而且,如果您不知道元數據中的每一列意味着什麼,則可以使用相同的選項,--header 或者 - h 添加一個用於定義每一列的新行。

linuxmi@linuxmi:~/www.linuxmi.com$ exa -lh

列出文件詳細信息帶 header

顯示目錄的內容

如果要列出特定目錄的所有內容,請使用當前目錄路徑作爲參數,而不是當前目錄。

linuxmi@linuxmi:~/www.linuxmi.com$ exa /home/linuxmi

列出目錄

列出所有目錄和子目錄中的文件

要遞歸列出目錄和子目錄,可以 --recurse 或 - R 選擇。它爲每個子目錄創建一個單獨的列表。

linuxmi@linuxmi:~/www.linuxmi.com$ exa -R

遞歸子目錄

以樹形結構列出目錄的內容

由於 exa 具有一個內置工具,可以以遞歸方式顯示類似樹的內容,因此您不需要像樹這樣的額外命令。您可以通過 --tree 或 - T 選項,它將以樹形結構列出所有目錄和子目錄的內容。

linuxmi@linuxmi:~/www.linuxmi.com$ exa -R

樹形結構輸出

如果要在特定程度上查看子目錄的內容,也可以使用 - L 或 --level=(depth) 選項來限制遞歸的深度。

linuxmi@linuxmi:~/www.linuxmi.com$ exa -T -L 2

深度受限的樹形結構輸出

linuxmi@linuxmi:~/www.linuxmi.com$ exa -T -L 1

深度受限的樹形結構輸出

禁用彩色輸出

不喜歡查看彩色終端輸出嗎?嗯,exa 也接受 --color 選項,它的值是 always、automatic 和 never。如果要禁用顏色,請傳遞 --color=never 參數。

linuxmi@linuxmi:~/www.linuxmi.com$ exa --long --color=never

禁用顏色的 exa 輸出

如果您想充分利用 exa 實用程序,可以閱讀其官方文檔。

您是否認爲是時候用 exa 命令替換 ls 了,或者你現在已經這樣做了?請在下面的評論中告訴我們。

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