eza Modern ls replacement

Version 0.23.5 · source

Start here

eza
List the folder
eza -l
Long view
eza -la
Long, with hidden
eza -T
Tree view
eza -l --git
Show git status
eza -l -s size
Sort by size
eza -l --icons
Add file icons
eza -D
Directories only

Concepts

  1. Pick entries dir or files
  2. Order name by default
  3. Layout grid, -1, -l, -T
  4. Decorate colour, icons

Listing

eza
List the current folder as a grid
eza <path>...
List given folders or files
eza -1
One entry per line
eza -a
Show hidden files
eza -aa
Also show the dot entries
eza -R
Recurse into folders
eza -d <dir>
List a folder itself, not contents
eza -x
Grid sorted across, not down
eza -F
Add type marks (/ * @)
eza -w <cols>
Set the width used for layout
eza --stdin
Read file names from stdin

Long view

eza -l
Permissions, size, owner, date
eza -lh
Add a header row
eza -lg
Add group column
eza -l --smart-group
Group only if it differs from owner
eza -lb
Binary size prefixes (KiB)
eza -lB
Sizes in bytes
eza -lo
Octal permissions
eza -li
Show inode numbers
eza -lH
Show hard link counts
eza -lS
Show allocated blocks
eza -l@
Show extended attributes
eza -lZ
Show security context
eza -lX
Dereference symlinks
eza -l --no-permissions --no-user
Hide those columns
eza -l --no-filesize --no-time
Hide size and time columns
Long view columns
Column Meaning
Permissions type + rwx for user, group, other
Size human-readable unless -b or -B
User / Group owner; group needs -g
Date modified unless -t is set
Git status marks with --git

Tree

eza -T
Tree of the current folder
eza -T -L <depth>
Limit tree depth
eza -T -D
Tree of folders only
eza -T -I '<glob>|<glob>'
Skip names matching globs
eza -T --git-ignore
Skip files ignored by git
eza -lT
Tree with long details
eza -R -L <depth>
Recurse with a depth limit
eza -T --total-size -l
Recursive size of each folder

Sorting and filtering

eza -s <field>
Sort by a named field
eza -r
Reverse the order
eza -s size -r
Largest first
eza -s modified
Oldest to newest
eza -s extension
Group by file extension
eza -s Name
Sort by name, uppercase first
eza --group-directories-first
Folders before files
eza --group-directories-last
Folders after files
eza -D
Only folders
eza -f
Only files
eza -I '<glob>|<glob>'
Ignore names matching globs
eza --git-ignore
Hide files listed in .gitignore
eza --no-symlinks
Hide symbolic links
eza -D --show-symlinks
Show links even when filtering

Git and time

eza -l --git
Git status column per file
eza -l --git-repos
Status of nested repositories
eza -l --git-repos-no-status
Mark repos without status (faster)
eza -l --no-git
Turn git columns off
eza -l -t <field>
Show modified, changed, accessed or created
eza -l -u / -U / -m
Accessed / created / modified time
eza -l --time-style=<style>
default, iso, long-iso, full-iso, relative
eza -l --time-style='+%Y-%m-%d'
Custom strftime format

Colour and icons

eza --icons
Icons next to names
eza --icons=always
Keep icons when piping
eza --color=never
Plain output
eza --color=always | less -R
Keep colour in a pager
eza -l --color-scale=size
Colour a field by level
eza -l --color-scale=age
Colour by file age
eza -l --color-scale-mode=fixed
Fixed colours instead of a gradient
eza --hyperlink
Make names clickable links

Recipes

Everyday long listing
alias ll='eza -lah --git --group-directories-first'll src/
Project overview, no clutter
eza -T -L 2 --git-ignore -I 'node_modules|target'# add -l --git to see status per file
Biggest files first
eza -l -s size -r -f --total-size | head
Recently changed
eza -l -s modified -r --time-style=relative | head