GitHub 標星 14.3K+!一款開源替代 ls 的工具你值得擁有!

傑哥的IT之旅 發表於 2021-08-28
Github

這是我參與 8 月更文挑戰的第 28 天,活動詳情檢視: 8月更文挑戰

一名致力於在技術道路上的終身學習者、實踐者、分享者,一位忙起來又偶爾偷懶的原創博主,一個偶爾無聊又偶爾幽默的少年。

歡迎各位掘友們微信搜尋「傑哥的IT之旅」關注!

原文連結:GitHub 標星 14.3K+!一款開源替代 ls 的工具你值得擁有!

前言

提到ls命令,大家都不陌生,在Linux環境下,其主要作用:列出當前目錄下所包含的檔案及子目錄,如果當前目錄下檔案過多,則使用命令ls不是很好,因為這輸出出來的結果跟你所要查詢的檔案未能達成一致,第一: 需要進行二次過濾查詢;第二: 檔案過多時,終端輸出結果較慢;

那麼,今天傑哥給大家介紹一款 GitHub 開源的替代 ls 命令的工具。

一、EXA 是什麼?

EXA 是 Unix 和 Linux 作業系統附帶的命令列程式的 ls 現代替代品。

二、EXA 與 LS 有什麼不同之處?

  • 終端螢幕不再是瓶頸:exa 功能強大,比 ls 要友好,輸出結果會更快;
  • 顏色:exa 大量使用顏色;
  • 不與 ls 命令衝突

三、EXA 的特徵

  • 色彩:檔案型別列表以及如何區分檔案;
  • 網格檢視:在與終端視窗大小相同的網格中顯示檔案;
  • 長遠:在表中顯示檔案及其後設資料;
  • 樹檢視:在樹中顯示檔案及其子代;
  • Git 整合:在儲存庫中時,檢視檔案的 Git 狀態;
  • 篩選:隱藏列表中的檔案,顯示不可見的檔案,並對輸出進行排序;
  • Xattrs:列出檔案的擴充套件屬性;

GitHub 地址:github.com/ogham/exa

image.png

四、安裝 Rust

exa 是基於 Rust 語言實現的,安裝前需檢查您的作業系統是否支援Rustc 1.17.0更高版本,推薦安裝 Rust 的方法是從官方下載頁面,網址:https://www.rust-lang.org/tools/install設定好之後,通過make install將編譯exa並將其安裝到/usr/local/bin中。

開始使用Rust的方法是必須要安裝 Rustup,它可以下載並進行安裝Rust,並管理這兩個元件:Cargo package manager(Cargo包管理器)和 build tool(構建工具)的更新。

五、安裝 EXA

exa是一個獨立的二進位制檔案,不需要任何依賴關係或特殊許可權,如果作業系統有可用的軟體包,那麼可使用軟體包管理器自動處理下載和驗證以及安裝手冊頁和Shell補全檔案,如果沒有,可以手動安裝exa也可編譯一個副本。

  • MacOS

MacOS上安裝exa是使用HomebrewHomebrew軟體包管理器提供了exa二進位制檔案,也可以手動安裝。

傳送門:brew.sh/

$ brew install exa
複製程式碼

如果您的Linux發行版包含exa軟體包,則可以從命令列安裝它:

  • Arch
$ sudo pacman -S exa
複製程式碼
  • Fedora
$ sudo dnf install exa
複製程式碼
  • openSUSE
$ sudo zypper install exa
複製程式碼
  • 從原始碼構建 EXA

EXA 是開源的,可根據自己的需求構建版本,通過原始碼構建,同樣也是先按照上面的步驟,安裝 Rust,EXA 是基於 Rust 編寫的,在執行其他任何操作之前,必須先安裝 Rust 編譯器。

安裝其他依賴項

EXA 需要完成兩項依賴項:libgit2(Git 庫)和 CMake(在 Rust 中使用 libgit2 的構建系統)

exa的某些功能取決於libgit2,若無法編譯libgit2,則可以通過執行退出Git支援

cargo build --release --no-default-features
複製程式碼

如編譯musl,並且要使Git功能正常工作,則需要使用標記vendored-openssl

cargo build --release --target=x86_64-unknown-linux-musl --features vendored-openssl,git
複製程式碼

獲取 EXA 源

$ git clone https://github.com/ogham/exa.git
複製程式碼

獲取程式碼並設定環境變數後,即可使用 Cargo 構建 exa

$ cargo build --release
複製程式碼

一個可執行的二進位制檔案將出現在target/release目錄中,可通過該二進位制檔案複製到您的目錄中來永久安裝 exa $PATH

採用 Cargo 安裝

如果安裝了最新版本的Cargo(至少是Cargo v0.5.0),則可以使用它來安裝exa

$ cargo install exa
複製程式碼

Cargo構建exa二進位制檔案將放置在$HOME/.cargo目錄中,您必須將其放置在目錄中$PATH,也可以通過將--root選項引數來給Cargo來覆蓋此位置。

如使用的 Linux 發行版不支援通過以上方式安裝,可通過官方 GitHub 倉庫Releases頁面下載編譯好的二進位制版本進行使用。

github.com/ogham/exa/r…

下載對應的二進位制版本並進行解壓安裝到指定目錄下

# wget https://github.com/ogham/exa/releases/download/v0.9.0/exa-linux-x86_64-0.9.0.zip
# unzip exa-linux-x86_64-0.9.0.zip
# mv exa-linux-x86_64 /usr/local/bin
複製程式碼

下載並安裝對應的 MAN 手冊

# wget https://raw.githubusercontent.com/ogham/exa/master/contrib/man/exa.1
# mv exa.1 /usr/share/man/man1
複製程式碼

六、使用 EXA

EXA 的使用方法基本和 ls 一樣,也是一個命令列程式,開啟終端,使用 EXA 的選項引數即可執行命令,查詢出來的結果並進行列印。

基本語法格式:

$ exa [OPTIONS] [FILES]
複製程式碼

清單檔案

EXA 的主要內容是:清單檔案,將傳遞著所需要的檔案作為引數以及一些檔案的選項。

使用-l選項可通過長檢視顯示檔案及其後設資料。

$ exa -l
複製程式碼

遞迴

EXA 可以遞迴到目錄中並列出目錄下每個子目錄的內容,可使用-R--recurse命,遞迴時,EXA 將為原始目錄下發現的任何子目錄提供單獨的列表。

使用-R選項將列出目錄及其包含的子目錄。

$ exa -R
複製程式碼

除上述舉例說的兩個引數選項以外,就不一一描述了,大家可以看如下圖片中的引數選項或者在官網上探索更多引數的用法。

image.png

image.png

image.png

傳送門網址

1、命令列引數選項 the.exa.website/docs/comman…

2、GitHub 地址 github.com/ogham/exa

3、releases 頁面地址 github.com/ogham/exa/r…

4、環境變數地址 the.exa.website/docs/enviro…

5、顏色主題地址 the.exa.website/docs/colour…

本文完。


原創不易,如果你覺得這篇文章對你有點用的話,麻煩你為本文點個贊、評論或轉發一下,因為這將是我輸出更多優質文章的動力,感謝!

對了,掘友們記得給我點個免費的關注喲!防止你迷路下次就找不到我了。

我們下期再見!