eza: Modern ls Alternative for Better Terminal File Listing
eza, the modern ls alternative, is transforming terminal file listing for developers in 2025. As a top-rated rust ls replacement built with Rust, it delivers enhanced functionality, beautiful visualizations, and a superior user experience compared to the traditional ls command. With 17.5k+ GitHub stars, eza elevates your workflow—discover why developers are switching to this powerful terminal file tool today.

eza: The Modern ls Alternative That Transforms Your Terminal Experience
If you're a developer who spends significant time in the terminal, you've almost certainly used the ls
command countless times. But in 2025, there's a superior alternative that's gaining rapid adoption among developers: eza, a modern ls alternative built with Rust that delivers enhanced functionality, beautiful visualizations, and improved user experience. As a rust ls replacement with over 17.5k stars on GitHub, eza has established itself as the go-to terminal file tool for developers seeking more from their file listing command.
Why Replace ls with eza?
The traditional ls
command has served Unix and Linux users faithfully for decades, but it shows its age in today's development environments. As projects grow more complex and developers handle increasingly diverse file types and version control scenarios, the limitations of ls
become frustratingly apparent.
eza was created specifically to address these limitations. Developed by the eza-community and first released in July 2023, this rust command line tool has quickly evolved to offer features that transform how developers interact with files in the terminal. Unlike the basic output of ls
, eza provides rich, contextual information at a glance while maintaining the speed and efficiency developers demand.
Key Features of eza That Make It Better Than ls
Colored File Listing and Visual Hierarchy
One of the most immediately noticeable improvements with eza is its colored file listing capabilities. eza automatically color-codes different file types, making it instantly easier to distinguish between directories, executables, symlinks, and regular files. But eza takes this further with customizable color schemes through its theme.yml
configuration file, allowing developers to tailor the visual experience to their preferences.
bash
eza --color=always --icons=always
This simple command produces a vibrant, informative file listing with appropriate icons for different file types, far beyond the basic color support of ls --color
.
Git Aware ls Functionality
For developers working with Git repositories, eza's git aware ls capabilities are a game-changer. With the --git
flag, eza displays the Git status of files directly in the listing, showing modified, added, deleted, or untracked files without needing to run git status
separately.
bash
eza -l --git
This integration saves valuable time by combining file exploration with version control status checking in a single command.
Advanced Symlink Explorer Capabilities
As a powerful symlink explorer, eza provides detailed information about symbolic links, including their targets and status. The -L
flag allows dereferencing symlinks to show information about the target file, while the default view clearly indicates symlinks with both color coding and icons.
Recursive Directory Visualization
eza offers multiple ways to explore directory structures that are far more intuitive than ls's basic recursive listing. The --tree
option visualizes directory hierarchies with connecting lines, making it easy to understand the structure of complex projects:
bash
eza --tree --level=2
This feature alone can save significant time when navigating unfamiliar codebases or organizing project files.
Customizable Output and Theming
Unlike the one-size-fits-all approach of ls
, eza offers extensive customization options. Through both command-line flags and the theme.yml
configuration file, users can:
- Customize colors for different file types and attributes
- Configure icon sets for various file categories
- Adjust timestamp formats
- Set default display options
- Create custom alias configurations
This level of personalization transforms eza from a simple tool into one that adapts to your workflow, rather than forcing you to adapt to it.
Getting Started with the eza Command
Installation Options
eza is available across all major operating systems, including Windows, macOS, and Linux. The simplest installation methods include:
Homebrew (macOS/Linux):
bash
brew install eza
APT (Debian/Ubuntu):
bash
sudo apt install eza
Cargo (Rust package manager):
bash
cargo install eza
For Nix users, eza can be tried directly without installation:
bash
nix run github:eza-community/eza
Basic Usage Examples
Once installed, you can start using eza immediately with familiar syntax:
- Basic listing with icons:
eza --icons
- Long format with Git status:
eza -l --git
- Tree view of directory structure:
eza --tree
- Colored output with extended attributes:
eza -l@ --color=always
Replacing ls with eza Permanently
To make eza your default file listing command, add an alias to your shell configuration:
bash
## For bash or zsh
alias ls='eza --icons=auto --color=auto'
alias ll='eza -l --icons=auto --color=auto'
alias tree='eza --tree'
This simple change can significantly提升 (improve) your terminal productivity without disrupting muscle memory built up over years of using ls
.
Performance: Is eza as Fast as ls?
A common concern when replacing core command-line tools is performance impact. As a rust command line application, eza delivers impressive speed thanks to Rust's performance characteristics and efficient memory management. In most everyday use cases, eza performs comparably to ls
, with the added features coming at minimal performance cost.
For large directory listings with complex filtering or recursive operations, eza's optimized implementation often outperforms ls
while providing significantly richer output.
Who Should Use eza? Ideal Scenarios
eza shines in several key scenarios:
- Software Developers: Particularly those working with complex codebases, Git repositories, or multiple file types
- System Administrators: Who need detailed file information and efficient directory navigation
- DevOps Engineers: Managing complex deployment environments with various file types and symlinks
- Anyone Who Spends Significant Time in the Terminal: The improved visualization reduces cognitive load during file exploration
Potential Considerations
While eza offers substantial improvements over ls
, there are a few considerations:
- Learning Curve: While basic usage is similar to
ls
, mastering all features requires some investment - Dependency on Rust Ecosystem: Installation may require Rust tooling on some platforms
- ** muscle memory adjustment:** Long-time
ls
users may need time to adapt to new options
These minor drawbacks are easily outweighed by the productivity benefits for most developers.
Conclusion: Why eza is the Best Modern ls Alternative
In the crowded landscape of terminal tools, eza stands out as the premier modern ls alternative that genuinely improves upon the decades-old ls
command. As a rust ls replacement, it combines the performance benefits of Rust with thoughtful design choices that prioritize developer productivity and user experience.
Whether you're drawn to its beautiful colored file listing, git aware ls capabilities, advanced symlink exploration, or customizable interface, eza delivers tangible value with every command. For developers seeking to enhance their terminal workflow, replacing ls with eza represents a low-effort, high-reward improvement that pays dividends daily.
If you haven't yet tried this exceptional rust command line tool, install eza today and experience the future of file listing in the terminal.
Have you made the switch from ls to eza? Share your favorite features or custom configurations in the comments below!