為什么我在 Linux 上不再使用 ls 命令
如果您使用Linux和類Unix的操作系統(tǒng),那么您肯定會熟悉或使用ls命令行實用程序。它列出了關(guān)于文件或目錄的信息。作為一個已有幾十年歷史的命令,ls并沒有提供您可能想要的現(xiàn)代功能,例如Git支持、彩色和樹視圖輸出。這就是exa工具出現(xiàn)的意義,是Linux ls命令的現(xiàn)代替代品。
exa:使用 Rust 語言編寫的 ls 文件列表命令替代品
與ls類似,exa也是一個列出文件的免費開源命令行實用程序。但是,exa輕便快捷,用友好,具有更多的特性和更好的查詢性能。
如果你經(jīng)常涉及列出數(shù)百個文件并與之交互,則exa可以通過使用并行查詢在幾秒鐘內(nèi)顯示輸出,從而幫助您減少很多工作。
不僅是快速查詢,它還有助于輕松識別文件類型和元數(shù)據(jù),默認情況下,文件類型和元數(shù)據(jù)根據(jù)文件擴展名的顏色會有所不同。
exa vs ls
如上圖所示,默認情況下,exa還會輸出易于我們查看的的文件大小。雖然您需要對ls命令使用-h或--human-可讀選項。
此外,exa帶有用于樹形視圖輸出的內(nèi)置工具,您還可以將其與文件信息結(jié)合使用。
樹形視圖輸出
與exa和ls區(qū)別最有趣的功能是對Git版本控制系統(tǒng)的支持。
如果您位于Git存儲庫中,并且想查看自上次提交以來是否有任何文件更改或修改,而沒有安裝Git并使用git status,則可以將 –git選項與exa一起使用。它將在元數(shù)據(jù)表中添加一個新的Git列,其中包含兩個描述暫存或未暫存狀態(tài)的字符。
Git集成
如何在Ubuntu和其他Linux發(fā)行版上安裝Exa?
有趣的是,exa是一個獨立的二進制文件,不需要安裝任何依賴項。唯一需要安裝的是下載操作系統(tǒng)的二進制文件并將其放在$PATH環(huán)境變量中列出的目錄(最可能是/usr/bin/)中。
但是,如果您發(fā)現(xiàn)此手動方法很困難,則另一種(最簡單的)安裝exa的方法是使用系統(tǒng)的默認軟件包管理器。
對于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,并且已經(jīng)安裝了Homebrew軟件包管理器,請運行以下命令:
- linuxmi@linuxmi:~/www.linuxmi.com$ brew install exa
最后,您還可以使用源代碼,所需的依賴項并按照此處給出的說明進行編譯和構(gòu)建。
如何使用Exa?
列出具有元數(shù)據(jù)的文件
使用--long或-l選項,您可以顯示文件及其元數(shù)據(jù)。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa -l
列出元數(shù)據(jù)
而且,如果您不知道元數(shù)據(jù)中的每一列意味著什么,則可以使用相同的選項,--header或者-h添加一個用于定義每一列的新行。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa -lh
列出文件詳細信息帶header
顯示目錄的內(nèi)容
如果要列出特定目錄的所有內(nèi)容,請使用當前目錄路徑作為參數(shù),而不是當前目錄。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa /home/linuxmi
列出目錄
列出所有目錄和子目錄中的文件
要遞歸列出目錄和子目錄,可以--recurse或-R選擇。它為每個子目錄創(chuàng)建一個單獨的列表。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa -R
遞歸子目錄
以樹形結(jié)構(gòu)列出目錄的內(nèi)容
由于exa具有一個內(nèi)置工具,可以以遞歸方式顯示類似樹的內(nèi)容,因此您不需要像樹這樣的額外命令。您可以通過--tree或-T選項,它將以樹形結(jié)構(gòu)列出所有目錄和子目錄的內(nèi)容。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa -R
樹形結(jié)構(gòu)輸出
如果要在特定程度上查看子目錄的內(nèi)容,也可以使用-L或--level=(depth)選項來限制遞歸的深度。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa -T -L 2
深度受限的樹形結(jié)構(gòu)輸出
- linuxmi@linuxmi:~/www.linuxmi.com$ exa -T -L 1
深度受限的樹形結(jié)構(gòu)輸出
禁用彩色輸出
不喜歡查看彩色終端輸出嗎?嗯,exa也接受--color選項,它的值是always、automatic和never。如果要禁用顏色,請傳遞--color=never參數(shù)。
- linuxmi@linuxmi:~/www.linuxmi.com$ exa --long --color=never
禁用顏色的exa輸出
如果您想充分利用exa實用程序,可以閱讀其官方文檔。
您是否認為是時候用exa命令替換ls了,或者你現(xiàn)在已經(jīng)這樣做了?請在下面的評論中告訴我們。