A colorful, modern directory listing for Linux.
Default (xls --noTable)
Table frame (xls)
Sort by size (xls --sort SIZE --noTable)
Custom columns (xls --columns NAME,SIZE,MTIME,USER --noTable)
Card layout when the table is wider than the terminal (xls --all)
Download the binary for your architecture from the latest release:
| Arch | Asset |
|---|---|
| x86_64 | xls-*-linux-x86_64.tar.gz |
| aarch64 | xls-*-linux-aarch64.tar.gz |
# Example: x86_64
curl -sL https://github.com/zveinn/xls/releases/latest/download/xls-v0.0.1-linux-x86_64.tar.gz \
| tar -xz
sudo install -m 755 xls-v0.0.1-linux-x86_64 /usr/local/bin/xls
xls --helpReplace the version and arch to match the asset you downloaded. Optional
checksums (.sha256) are published next to each archive.
cargo install --path .
# or
cargo build --release# Default listing (USER, PERMS, SIZE, NAME)
xls
# List a path
xls /var/log
# Everything
xls --all
# Pick columns and order
xls --columns NAME,SIZE,MTIME
xls --columns USER,PERMS,NAME /home
# Sort (always ascending)
xls --sort SIZE
xls --all --sort MTIME
# Plain layout / no header
xls --noTable
xls --noHeaders --sort NAME
# Pagers
xls | less
xls --color=always | less -R| Flag | Description |
|---|---|
--all |
Show every column in a fixed sensible order |
--columns COLS |
Comma-separated columns to show, in order (--columns=… also works) |
--sort COL |
Sort by column, ascending (--sort=… also works) |
--noHeaders |
Do not print the column header row |
--noTable |
Skip table frame (│ / ─┼─ rules) |
--color WHEN |
auto (default), always, or never |
-h, --help |
Show help |
Notes
--alland--columnscannot be used together.- Color is off when stdout is not a TTY (e.g. pipes). Also respects
NO_COLOR,CLICOLOR=0, andCLICOLOR_FORCE/FORCE_COLOR. - When the table is wider than the terminal, entries render as bordered cards (multiple per row when space allows).
Default: USER, PERMS, SIZE, NAME.
| Column | Description |
|---|---|
MTIME |
Last content modification time (UTC, DD-MM-YYYY HH:MM:SS) |
USER |
Owner identity (sveinn, or sveinn/staff when group differs) |
PERMS |
Permission triads + type: [rwx][r-x][r-x] dir (user / group / other / type; trailing + ACL or @ xattrs) |
GROUP |
Group name only |
OTHER |
Other-class triad only, e.g. [r-x] |
SIZE |
Logical size, human-readable (B / K / M / G / T) |
NAME |
Entry name (color indicates type); symlinks show → target |
N |
Hard link count |
BLOCKS |
Allocated blocks and I/O block size (<st_blocks>b/<blksize>) |
S |
Sparse flag (◆ / ◇ in table mode; yes / no in cards) |
INO:IGEN |
Inode number and generation (when available) |
DEV |
Device id (major:minor); device nodes also show rdev |
ATIME |
Last access time (may be stale on noatime mounts) |
CTIME |
Last status-change time (metadata change, not create) |
BIRTH |
Creation / birth time when the filesystem provides it |
FLAGS |
Linux inode flags from FS_IOC_GETFLAGS, or — |
XATTRS |
Extended attribute names, or — |
XFS |
Cheap XFS info (FS_IOC_FSGETXATTR / DIOINFO): xflags, exts, proj, esz, cow, dio |
Aliases (for --columns / --sort): MODIFIED→MTIME, OWNER/UID→USER, GID→GROUP, MODE/PERMISSIONS→PERMS, NLINK/LINKS→N, ALLOC→BLOCKS, SPARSE→S, INODE/INO/IGEN→INO:IGEN, DEVICE→DEV, ACCESSED→ATIME, CHANGED→CTIME, BTIME/CREATED→BIRTH, FL→FLAGS, XA/XATTR→XATTRS.