什麼是 eza?
eza
是一個用 Rust 語言開發的現代化檔案列表工具,設計用來完全取代傳統的 ls
指令。它不僅保留了 ls
的所有基本功能,還加入了許多現代化的改進,讓檔案管理變得更加直觀和高效。
主要特色
- 豐富的視覺效果:支援顏色、圖示、樹狀結構顯示
- Git 整合:自動顯示 Git 狀態(新增、修改、刪除的檔案)
- 詳細資訊:檔案大小、類型、權限、擁有者、群組、修改日期
- 高效能:Rust 語言開發,執行速度快,記憶體使用少
- 跨平台:支援 Linux、macOS、Windows
- 單一執行檔:無需複雜的依賴關係
為什麼要使用 eza?
傳統的 ls
指令雖然功能完整,但在現代開發環境中顯得過於簡樸。eza
提供了:
- 更好的可讀性:顏色和圖示讓檔案類型一目了然
- Git 狀態顯示:開發者可以快速了解專案狀態
- 更豐富的資訊:一次顯示更多有用的檔案資訊
- 現代化設計:符合現代終端機使用者的需求

安裝
方法一:使用套件管理器
Debian 和 Ubuntu
eza
可以從 deb.gierens.de 獲取。GPG 公鑰位於此倉庫中的 deb.asc 下。
首先,確保你有 gpg
指令,如果沒有,可以通過以下方式安裝:
1
2
| sudo apt update
sudo apt install -y gpg
|
然後通過以下方式安裝 eza
:
1
2
3
4
5
6
| sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
sudo apt install -y eza
|
Arch Linux
Fedora
macOS (使用 Homebrew)
方法二:使用 Cargo (Rust 套件管理器)
如果你已經安裝了 Rust 和 Cargo:
方法三:下載預編譯二進制檔案
從 GitHub Releases 下載適合你系統的預編譯版本:
1
2
3
4
5
| # 下載最新版本 (以 Linux x86_64 為例)
wget https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.zip
unzip eza_x86_64-unknown-linux-gnu.zip
sudo mv eza /usr/local/bin/
sudo chmod +x /usr/local/bin/eza
|
基本使用
取代 ls 指令
最簡單的方式是建立一個 alias 來取代 ls
:
1
| alias ls='eza -lhM --icons --git --hyperlink --time-style long-iso'
|
將此 alias 加入你的 shell 配置檔案(如 ~/.bashrc
、~/.zshrc
或 ~/.config/fish/config.fish
):
1
2
3
4
5
6
7
8
9
10
| # 對於 bash
echo "alias ls='eza -lhM --icons --git --hyperlink --time-style long-iso'" >> ~/.bashrc
source ~/.bashrc
# 對於 zsh
echo "alias ls='eza -lhM --icons --git --hyperlink --time-style long-iso'" >> ~/.zshrc
source ~/.zshrc
# 對於 fish
echo "alias ls='eza -lhM --icons --git --hyperlink --time-style long-iso'" >> ~/.config/fish/config.fish
|
常用參數說明
-l
:長格式顯示(詳細資訊)-h
:人類可讀的檔案大小-M
:顯示修改時間--icons
:顯示檔案類型圖示--git
:顯示 Git 狀態--hyperlink
:支援超連結--time-style long-iso
:使用 ISO 格式的時間顯示
進階使用
樹狀結構顯示
1
2
3
4
5
6
7
8
| # 顯示目錄樹狀結構
eza --tree
# 限制樹狀結構深度
eza --tree --level=3
# 只顯示目錄
eza --tree --only-dirs
|
Git 狀態顯示
1
2
3
4
5
6
7
8
| # 顯示 Git 狀態
eza --git
# 顯示 Git 狀態和詳細資訊
eza -l --git
# 顯示 Git 狀態和圖示
eza --git --icons
|
檔案過濾和排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 只顯示檔案(不顯示目錄)
eza --only-files
# 只顯示目錄
eza --only-dirs
# 按檔案大小排序
eza -l --sort=size
# 按修改時間排序(最新的在前)
eza -l --sort=modified
# 按檔案名稱排序
eza -l --sort=name
|
顏色和圖示
1
2
3
4
5
6
7
8
9
10
11
| # 強制顯示顏色
eza --color=always
# 禁用顏色
eza --color=never
# 顯示圖示
eza --icons
# 使用不同的圖示主題
eza --icons=unicode
|
檔案大小和時間格式
1
2
3
4
5
6
7
8
9
10
| # 人類可讀的檔案大小
eza -h
# 顯示檔案大小(位元組)
eza -s
# 自訂時間格式
eza --time-style=relative
eza --time-style=long-iso
eza --time-style=full-iso
|
實用範例
開發者常用配置
1
2
3
4
5
6
| # 適合開發者的 alias
alias ll='eza -l --git --icons --time-style=relative'
alias la='eza -la --git --icons --time-style=relative'
alias lt='eza --tree --level=2 --git --icons'
alias lf='eza --only-files --git --icons'
alias ld='eza --only-dirs --icons'
|
系統管理員配置
1
2
3
4
5
| # 適合系統管理員的 alias
alias ls='eza -l --git --icons --time-style=long-iso --group-directories-first'
alias ll='eza -la --git --icons --time-style=long-iso --group-directories-first'
alias lx='eza -l --git --icons --time-style=long-iso --sort=extension'
alias lz='eza -l --git --icons --time-style=long-iso --sort=size'
|
檔案搜尋和過濾
1
2
3
4
5
6
7
8
9
10
11
12
| # 搜尋特定類型的檔案
eza --only-files | grep "\.txt$"
# 顯示隱藏檔案
eza -la
# 不顯示隱藏檔案
eza -l
# 顯示特定權限的檔案
eza -l | grep "^d" # 只顯示目錄
eza -l | grep "^-" # 只顯示一般檔案
|
與其他工具的整合
與 fzf 整合
1
2
| # 使用 eza 和 fzf 進行檔案選擇
alias fzf='fzf --preview "eza -l --git --icons {}"'
|
與 ripgrep 整合
1
2
| # 在搜尋結果中顯示檔案資訊
alias rg='rg --color=always | while read line; do echo "$line" | head -1 | xargs eza -l --git --icons; done'
|
效能優化
大型目錄處理
1
2
3
4
5
| # 對於包含大量檔案的目錄,可以禁用某些功能來提升效能
alias ls-fast='eza -l --no-git --no-icons'
# 只顯示檔案名稱(最快)
alias ls-simple='eza --no-git --no-icons --no-time'
|
故障排除
常見問題
圖示不顯示
1
2
3
| # 確保終端機支援 Unicode 和圖示字型
echo $TERM
# 安裝 Nerd Fonts 字型
|
顏色不顯示
1
2
3
4
| # 檢查終端機是否支援顏色
echo $TERM
# 強制啟用顏色
eza --color=always
|
Git 狀態不顯示
1
2
3
4
| # 確保在 Git 倉庫中
git status
# 檢查 Git 是否正確安裝
git --version
|
總結
eza
是一個功能強大的現代化檔案列表工具,它不僅保留了 ls
的所有基本功能,還加入了許多實用的改進。通過適當的配置,它可以大幅提升你的命令列工作效率。
主要優勢:
- 更好的視覺效果和可讀性
- Git 狀態整合
- 豐富的顯示選項
- 高效能執行
- 易於配置和使用
建議從基本的 alias 開始,然後根據你的需求逐步添加更多功能。無論是日常檔案管理還是開發工作,eza
都能提供更好的體驗。