Skip to content

eza

What is it?

eza is a modern, feature-rich replacement for the venerable ls command. It is a maintained fork of the original exa project, written in Rust, and designed to provide more readable and visually structured information about the filesystem. It includes built-in support for colorized output by file type, icon integration, Git status indicators, and tree-view visualization.

In the software development ecosystem, eza belongs to the terminal aesthetics and productivity layer. It transforms the basic task of "listing files" into a high-signal diagnostic tool that provides immediate visual feedback about the state of a directory and its contents.

Installation (Optional)

!!! note CodeCampus OS includes eza by default. Use the commands below only if you are installing it on a different Linux distribution.

sudo pacman -S eza
sudo apt install eza
sudo dnf install eza

Why this tool matters (In Depth)

The standard ls command, while functional, provides very little context by default. It treats all files and directories as simple strings of text, requiring the user to manually parse file extensions or use additional flags to understand the structure of a project. eza matters because it optimizes for human perception.

By using color coding and icons, eza allows developers to instantly distinguish between source code, compiled binaries, configuration files, and symlinks. Its integration with Git is particularly valuable; it shows which files have been modified, staged, or are untracked directly in the file list, eliminating the need to run git status constantly while navigating. Furthermore, its ability to display recursive tree views (--tree) replaces the need for separate tools like tree while providing much richer metadata about file permissions and ownership.

For students, eza makes the filesystem less intimidating. It provides a clearer mental model of how a professional project is structured, highlighting the relationships between files and their role in the broader system through visual cues and metadata.

How students will actually use it

Students will use eza as their primary tool for directory exploration:

  • High-Signal Listing: Using eza -l --icons to get a detailed view of files with representative icons and colorized permissions.
  • Git Awareness: Running eza -l --git to see which parts of their project have pending changes before committing code.
  • Structure Visualization: Using eza --tree --level=2 to understand the hierarchy of a new project without getting lost in deeply nested subdirectories.
  • Sorting and Discovery: Easily sorting files by modification time (--sort=modified) to find the file they most recently edited.
  • Hidden File Management: Using eza -la to see configuration files (like .bashrc or .env) alongside standard project files.

Professional Insight (Top 1% Knowledge)

The "Top 1%" of developers treat eza as a replacement for default muscle memory. A common professional habit is to alias ls to eza in their shell configuration (e.g., alias ls='eza --icons --git'). This ensures that every directory they enter immediately provides the maximum amount of information without extra typing.

Another advanced trick is using eza's extended attribute support. Senior engineers use flags like --extattr or --mounts to see system-level metadata that standard ls often hides. They also leverage the --oneline and --group-directories-first flags to create customized views for specific tasks, such as creating a clean list of directories for a documentation snippet.

The "Top 1%" insight is the use of eza for visual auditing. By combining --long with --header, an engineer creates a clear table of file metadata that makes identifying permission errors or ownership mismatches trivial. Finally, remember that while eza is excellent for human use, it is less suitable for automated scripts that expect the standard, unformatted output of ls. A professional knows to keep the standard /bin/ls available for pipelines while using eza as their primary interactive interface.