爲什麼我在 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