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.

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ọn | Tác dụng |
|---|---|
-l, -a | Dạng bảng chi tiết; gồm file ẩn |
-T, -L N | Hiển thị dạng cây; giới hạn độ sâu |
--git | Cột trạng thái git cho mỗi file (mới, sửa, đã stage…) |
--git-ignore | Ẩn file bị .gitignore loại trừ |
--icons | Icon theo loại file (cần Nerd Font) |
-s + name/size/modified/extension | Sắp xếp theo trường; thêm -r để đảo chiều |
-D / -f | Chỉ 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 chols. - Cột git có thể chậm trong repo rất lớn; chỉ bật
--gittrong 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-ignorecho 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
- eza-community/eza — eza-community (GitHub)