Using lla

Views

Every way lla can draw a listing, from a plain list of names to trees, timelines, size maps and diffs.

↓ on this page

A view changes how a listing is drawn. It doesn't change what's selected, so you can combine any view below with the filters and sorting.

To stop passing a flag every time, set your usual view with default_format.

Default view

Names only, one per line. This is the view to use for a quick look.

lla
lla src
lla

Long view

Permissions, size, modification date, owner and group, plus any metadata you ask for. Use it when the details of each file matter.

lla -l
lla -l --hide-group --relative-dates
lla -l --date-format "%Y-%m-%d %H:%M"
lla -l --permission-format octal
lla -l

These flags add more metadata:

FlagAdds
-i, --inodeInode number
-H, --linksHard-link count
--allocated-sizeDisk space actually allocated
-@, --extendedExtended attribute names and sizes
-Z, --contextACL or SELinux context
-M, --mountsMount source, mount point and filesystem
--include-dirsRecursive directory sizes, which can be slow on large trees

Symlinks show their target after the name. --no-symlink-target hides it, and -X, --dereference reports the target's metadata instead of the link's.

--permission-format accepts symbolic, octal, binary, verbose or compact.

lla -l --permission-format octal --relative-dates --hide-group lla/src/formatter

Choose the columns

Set the columns and their order in your config:

[formatters.long]
hide_group = true
relative_dates = true
date_format = "%Y-%m-%d %H:%M"
columns = ["permissions", "size", "modified", "name", "field:git_status"]

The built-in keys are permissions, inode, links, size, allocated, modified, created, accessed, user, group, xattrs, context, mount, name, path and plugins. Use field:<name> for a field added by a plugin.

Tree view

The directory hierarchy, to the depth you choose. The default depth is 3, and default_depth in your config changes it.

lla -t
lla -t -d 2 docs
lla -t -d 2 docs

Table view

The long view's data in aligned, bordered columns. It's easier to scan down a single column, which helps when you're comparing files.

lla -T
lla -T lla/src/formatter

It takes the same column keys as the long view:

[formatters.table]
columns = ["permissions", "size", "modified", "name"]

Grid view

Names in as many columns as your terminal fits. Use it for directories with many short names.

lla -g
lla -g --grid-ignore

--grid-ignore ignores the terminal width, so lines can run off the screen.

lla -g themes

Git view

Each entry's Git status with its last commit, subject, age and author. A header shows the branch, its upstream, and how many files are staged or changed. Run it inside a repository. For a subdirectory, include the leading ./, because lla -G src reports Not a git repository in lla 0.6.6.

lla -G
lla -G ./src
lla -G

Timeline view

Entries grouped by when they last changed: today, yesterday, last week, last month and older. Use it to find what you were working on.

lla --timeline
lla --timeline lla/src

Size map view

Bars that compare entries by size, each with its share of the total. Add --include-dirs to count directories as well, which walks them recursively.

lla -S
lla -S --include-dirs
lla -S lla/src/formatter

Recursive view

Every nested directory, as a flat listing grouped by directory. -d limits the depth. To cap very large walks, set max_entries.

lla -R
lla -R -d 2
lla -R -l
lla -R -d 2 sdk

Archives

lla reads .zip, .tar, .tar.gz and .tgz files as if they were directories, without extracting them. Views, filters and machine output all work.

lla backup.tar.gz -t
lla project.zip -l -f ".rs"
lla bundle.tgz --json
lla ../docs.tar.gz -t -d 2

Single files

Pass a file to see only that entry, in any view.

lla Cargo.toml -l
lla src/main.rs --json

Compare files and directories

lla diff compares two paths, or one path against a Git reference.

lla diff src ../backup/src
lla diff src --git
lla diff src --git --git-ref HEAD~1
lla diff Cargo.lock ../backup/Cargo.lock
lla diff Cargo.lock --git --git-ref HEAD~1

--git compares against HEAD unless you set --git-ref.

For directories, you get each entry's status and size change.

lla diff lla/src --git

For files, you get the size and line-count changes followed by a unified diff. Binary files are detected and their content isn't printed.

lla diff lla/src/main.rs --git

Options for any view

OptionEffect
--icons, --no-iconsTurn icons on or off for this run
--no-colorPrint without color
--hyperlink always|auto|neverMake names clickable with OSC 8 links