Tools

eza: lệnh ls hiện đại với trạng thái git, icon và chế độ cây thư mục

Tóm tắt

eza là ls hiện đại do cộng đồng duy trì (fork của exa): màu theo loại file, cột trạng thái git, cây thư mục với -T, icon với Nerd Font. Dùng qua alias cho shell tương tác, không dùng trong script.

ls có từ thời terminal đen trắng: màu sắc hạn chế, kích thước file khó đọc nếu quên -h, không biết file nào đã sửa so với git, và muốn xem cây thư mục lại phải cài thêm tree. eza là lựa chọn thay thế hiện đại cho ls: màu theo loại file, icon, cột trạng thái git, chế độ cây thư mục, và thông tin dễ đọc mặc định. eza là bản fork được cộng đồng duy trì của exa, công cụ gốc đã ngừng phát triển.

Trang GitHub của eza-community/eza
Trang GitHub của eza-community/eza (ảnh chụp tháng 11/2026)

GitHub: https://github.com/eza-community/eza · khoảng 24 nghìn sao · Rust · EUPL-1.2

Cài đặt

brew install eza           # macOS
cargo install eza          # có Rust
# Ubuntu/Debian: thêm kho apt của eza theo INSTALL.md rồi
sudo apt install -y eza
# Windows: có gói trên winget, xem INSTALL.md

Để icon hiển thị đúng, cần cài một Nerd Font cho terminal.

Lệnh hay dùng

eza                                  # liệt kê, có màu
eza -la                              # dạng bảng, gồm file ẩn
eza -l --git                         # thêm cột trạng thái git
eza -l --icons --group-directories-first
eza -T -L 2                          # cây thư mục, sâu 2 cấp
eza -T -L 3 --git-ignore             # cây thư mục, bỏ qua file trong .gitignore
eza -l -s modified -r                # sắp xếp theo thời gian sửa, mới nhất trước
eza -l --header --total-size         # có tiêu đề cột, tổng kích thước thư mục

Tuỳ chọn quan trọng

Tuỳ chọnTác dụng
-l, -aDạng bảng chi tiết; gồm file ẩn
-T, -L NHiển thị dạng cây; giới hạn độ sâu
--gitCột trạng thái git cho mỗi file (mới, sửa, đã stage…)
--git-ignoreẨn file bị .gitignore loại trừ
--iconsIcon theo loại file (cần Nerd Font)
-s + name/size/modified/extensionSắp xếp theo trường; thêm -r để đảo chiều
-D / -fChỉ thư mục / chỉ file

Thay ls bằng alias

# ~/.zshrc
alias ls='eza --group-directories-first'
alias ll='eza -l --git --icons --group-directories-first'
alias la='eza -la --git --icons'
alias lt='eza -T -L 2 --git-ignore --icons'

Cách này giữ thói quen gõ ls nhưng có kết quả đẹp hơn. Các script vẫn gọi ls thật vì alias chỉ có tác dụng trong shell tương tác.

Lưu ý

  • eza không tương thích 100% cờ với ls (ví dụ ý nghĩa một số cờ sắp xếp khác); đừng dùng eza trong script viết cho ls.
  • Cột git có thể chậm trong repo rất lớn; chỉ bật --git trong alias xem chi tiết.
  • Giấy phép EUPL-1.2 khác với MIT; với việc dùng làm công cụ cá nhân thì không ảnh hưởng, nhưng cần lưu ý nếu đóng gói lại để phân phối.

Áp dụng thế nào?

  • Dev: Dùng lt để nắm nhanh cấu trúc project lạ, ll để thấy file nào vừa sửa mà chưa commit.
  • Tech Lead: Khi viết tài liệu kiến trúc, eza -T -L 2 --git-ignore cho cây thư mục sạch để dán vào README.
  • PM: Một trong nhiều công cụ nhỏ giúp terminal thân thiện hơn với người mới, giảm thời gian làm quen.

Nguồn & tham khảo

  1. eza-community/eza — eza-community (GitHub)